Avatar billede flemche Nybegynder
17. september 2014 - 07:08 Der er 10 kommentarer

Jquery: problem med $get() metoden

Hejsa

Jeg har et problem med at bruge Jquery $get() metoden.

Jeg har et link som når jeg klikker på det skal aktiverer en $get() metode. den kommer med en fejl som jeg ikke kan finde ud af hvad betyder.

jeg har fundet et svar til en anden person med tilsvarende problem på StackOverflow, men jeg forstår ikke svaret.
kan i hjælpe?

Mit link:
<a id="login" href="#">Login |&nbsp</a>

Mit script:
$('a#login').click(function(e){
  $.get("tekst.txt", function(data){
      modal.open({content: data});
  });
});

Modal.open er en funktion som åbner et Modal Window.
Dette virker fint.

Data er det tekst som returenes fra tekst.txt

Den fejl jeg får:
XMLHttpRequest cannot load file:///W:/Sites/MySite/Html/tekst.txt. Received an invalid response. Origin 'null' is therefore not allowed access. 


Det svar som jeg har fundet på StackOverflow:
Origin null means you are loading the HTML document directly from your file system. You can't use XMLHttpRequest without HTTP.

Either install a web server for your development, or dynamically generate a <script src="..."></script> instead.


Jeg ved selvfølgelig ikke im det er det korrekte svar der blev givet.
men ihvertfald ved jeg ikke hvad han mener med svaret.

/Flemming
Avatar billede Slater Ekspert
17. september 2014 - 08:29 #1
Det lyder som om du forsøger at køre AJAX ved bare at åbne en HTML-fil i din browser direkte, altså ved at dobbeltklikke på den. Det kan du ikke - den skal køres gennem en webserver.

Hvis du vil have det lokalt, kan du sagtens installere en lokal webserver - f.eks. IIS eller Apache, så du behøver ikke lægge det på nettet.
Avatar billede softspot Forsker
17. september 2014 - 08:30 #2
Svaret fra StackOverflow lyder korrekt. Du skal benytte en webserver (enten lokal eller ekstern) for at kunne benytte jQuery.get (og de andre ajax-metoder for den sags skyld).

Hvis du har mulighed for at uploade din kode til et webhotel (f.eks. one.com eller unoeuro.com) og køre den derfra, vil jeg skyde på, at du ikke får denne fejl.

Næste spørgsmål (som nok burde have været stillet først) er så, hvad er det du til opnå?
Avatar billede flemche Nybegynder
17. september 2014 - 09:41 #3
Okay, svaret fra jer begge giver god mening men kreerer så også et extra spørgsmål.

Men for lige at vende tilbage til den sidste linie I Softspot's svar, så er min intention at åbne et modal window og hente noget tekst og måske en form ind I dette vindue når der klikkes på login. På længere sigt var meningen også at hente nogle andre data ind I vinduet via AJAX og php.

Så dette er bare en start test for at se om jeg kan få det til at spille, hvilket jeg så IKKE kunne  :o(


Det der under mig lidt er at der I mit Editor program (WEbuilder)faktisk er en webserver kørende. den bruges bla. til at afvikle de php sider som jeg har. det kunne da godt være jeg lige skulle tjekke om den er startet ???

Ellers har jeg en Apache server kørende på min NAS som burde kunne bruges - eller mit webhotel. Men det er nok ikke noget I kan hjælpe med ;o)

Skal jeg fordele pointene mellem jer ??

/Flemming
Avatar billede softspot Forsker
17. september 2014 - 11:30 #4
Prøv at angive

http://localhost/tekst.txt

i din browser og se om den skulle poppe dit site op der (evt. http://localhost/html/tekst.txt).

Det afhænger lidt af, hvordan WEbuilder (som jeg ikke har nogen som helst erfaring med!) er sat op, f.eks. om den skal kaldes via en port eller om den bare kører på standard port 80 (og du dermed ikke behøver at angive porten i URL'en).

Hvis du ved hvilken mappen der er root-dir på din NAS' webserver, kan du da sagtens prøve at kopiere filen derover og så angive url'en på din NAS' webserver. Det burde også fungere (hvis ellers webserveren på NAS'en er aktiv).
Avatar billede softspot Forsker
17. september 2014 - 11:32 #5
Du skal nok også lige have lagt siden med din scriptkode over på samme server, da du ellers muligvis får problemer med Cross Origin Call (hvilket XMLHttpRequest ikke er glad for i standardkonfigurationen).
Avatar billede flemche Nybegynder
17. september 2014 - 11:59 #6
Det vil jeg prøve når jeg kommer hjem.
Avatar billede flemche Nybegynder
19. september 2014 - 20:59 #7
Når så fik jeg tid til at prøve det at på NAS Serveren.

Men nu får jeg denne meddelse:

XMLHttpRequest cannot load file:///S:/MySite/Html/tekst.txt. Received an invalid response. Origin 'null' is therefore not allowed access.

Hvad pokker er det??
Avatar billede Slater Ekspert
19. september 2014 - 22:32 #8
Samme som før, du kan ikke køre AJAX over filsystemet, det skal over webserveren. Hvis du kører en lokal webserver, skal url'en altså start med f.eks. http://localhost - ikke file://
Avatar billede flemche Nybegynder
21. september 2014 - 23:30 #9
Ja okay, det kunne jeg næste have sagt mig selv.

Nå men jeg har bøvlet en del med min editor da den bare ikke har ville kunne fungerer med den interne server - ihvertfald ikke når det gjaldt http.

Så jeg har installeret en apache server på min PC.
Men så er det at jeg bliver i tvivl om hvad det egentlig skal ske når jeg skriver http://localhost i browseren....?

Hvis jeg angiver i ip adresse får jeg fint testet apache serveren af, men når jeg skriver http://localhost bør den så ikke ramme samme http dokument eller er der noget jeg fuldstændigt har misforstået ???? eler mangler jeg bare at lave en eller ander redirekt i hosts filen ???

Lige nu står der bare 127.0.0.1 localhost i hosts filen
Avatar billede flemche Nybegynder
22. september 2014 - 10:24 #10
Nå jeg fik localhost til at virke med en reinstall af Apache.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester