Sida 2 av 2

Re: XMLHttpRequest eller jQuery Ajax

Postat: 28 november 2017, 21:06:22
av sodjan
Om man har som mål att bygga något väldigt generellt med maximalt antal
läsare, så kanske något utan JS är vettigt. Men för något applikationsspecifikt
där det är helt OK att ställa några enkla krav på browsern, och där dynamiska
sidor gör det hela så mycket bättre, så ser jag inte varför man skulle välja
bort JS...

Re: XMLHttpRequest eller jQuery Ajax

Postat: 29 november 2017, 14:04:12
av Oltronix
Läckert!

Men trist...
Jag får inte $.ajax(...); eller $.get(...); att fungera. Jag har testat ett antal varianter med olika och ibland förvirrande resultat. Dock fungerar .load(..) tack och lov.
Jag får inte ens exempel nedan att fungera när jag kör det från en lokal file
https://www.w3schools.com/jquery/tryit. ... _ajax_ajax

Sen kan jag undra. Def av .load():

Kod: Markera allt

.load(url[,data][,sucess])
och anrop ser ofta ut som:

Kod: Markera allt

$(document).ready(function(){
    $("button").click(function(){
        $("#div1").load("demo_test.txt", function() { console.log("Load was performed!")});
    });
Man utelämnar en optionell parameter i mitten. Det har jag inte sett förut. Vad kallas sånt? Är det någon sorts overload?

Re: XMLHttpRequest eller jQuery Ajax

Postat: 29 november 2017, 15:35:18
av hawkan
Testade w3schools-exemplet från lokal disk - Det trasslade med att läsa in demo_test.txt. Fungerade inte.
Testade från webservern - fungerar.

Så prova med att lägga html-koden och allt sånt på en webserver.

Gissar att du råkar ut för "cross domain requests" problem om det handlar om en lokal fil som bråkar, men det kan vara annat också.

Re: XMLHttpRequest eller jQuery Ajax

Postat: 29 november 2017, 17:55:59
av sodjan
Och med "cross domain requests" menas att man laddar själva webb sidan
från en källa medan ajax anropen pekar någon helt annanstans. Inte alltid
som det godkänns av säkerhetsskäl.

Får det inte heller att fungera från lokal fil. Tanken är nog normalt
att det finns en webb server i bakgrunden...

Re: XMLHttpRequest eller jQuery Ajax

Postat: 29 november 2017, 17:57:08
av Micke_s
Att försöka köra saker lokalt är svårt med ajax. typ inte tillåtet...
Du kan dock köra en enkel webserver lokalt..finns små webservrar du inte behöver installera ens..

Re: XMLHttpRequest eller jQuery Ajax

Postat: 29 november 2017, 18:00:40
av sodjan
Det var lite oklart vad option "isLocal" betyder. Jag fick det i alla fall inte att fungera. :-)

Re: XMLHttpRequest eller jQuery Ajax

Postat: 29 november 2017, 18:14:24
av Oltronix
hawkan skrev:Så prova med att lägga html-koden och allt sånt på en webserver.
Tack! Nu fungerar det när koden ligger på webservern. Skönt! Jag höll på att smälla av.

Re: XMLHttpRequest eller jQuery Ajax

Postat: 29 november 2017, 18:40:36
av Oltronix
Micke_s skrev:Du kan dock köra en enkel webserver lokalt..finns små webservrar du inte behöver installera ens..
Jag brukar köra apache. Men bestämde att inte köra lokal webserver av säkerhetskäl. Kanske löjligt... Webservrar har jag på maskiner som hämtar mätdata och snurrar 24/7. Vad heter de små webservrarna du nämner?

Re: XMLHttpRequest eller jQuery Ajax

Postat: 29 november 2017, 19:39:22
av Micke_s
http://miniweb.sourceforge.net/
Hela 200kbyte stor..

Re: XMLHttpRequest eller jQuery Ajax

Postat: 29 november 2017, 20:15:59
av hawkan
En egen lokal webserver är nog det bästa.
Fast jag hittade "felet", det behövdes lite hjälp för ajax att veta vad den skulle göra med filen, det var allt.
Lägg till "dataType"-direktivet så fungerar det med lokala filer, åtminstone för mej.

Kod: Markera allt

            $.ajax({dataType: "text",
                    url: "demo_test.txt",
                    success: function(result){
            $("#div1").html(result);

Re: XMLHttpRequest eller jQuery Ajax

Postat: 30 november 2017, 06:48:49
av Oltronix
Fint med 'dataType: "text"'! Tack. Detta tyder på att problemet inte är av typ "cross domain requests". Eller?
Intressant att på webserver så spelar existensen av 'dataType: "text"' igen roll.

Även intressant med felutskrifter vid lokalt utan 'dataType: "text"'.
(Felutskriften hittar man i Firefox med F12 alt Ctrl-Shift-i)

Kod: Markera allt

XML Parsing Error: junk after document element
Location: file:///home/erik/Arkiv/projekts/html/Ajax/demo_test.txt   Line Number 2, Column 1:     demo_test.txt:2:1
XML Parsing Error: junk after document element
Location: file:///home/erik/Arkiv/projekts/html/Ajax/w3_ajax.html    Line Number 2, Column 1:     w3_ajax.html:2:1
Varför allt pladder om XML och fixeringen vid rad 2.

Om man istället använder en XML-fil iställt för demo_test.txt så fås annan felutskrift från kod djupt i jQuery-biblioteket.

Kod: Markera allt

TypeError: a is null  [Learn More]  jquery.min.js:2:12998
Nu börjar bitarna falla på plats för mig och osäkerheten vad jag håller på med har minskat även om det inte är noll. Tack för all support. Utan er hade jag inte kommit långt. Att grubbla på saker utan progress och dialog är frusterande. Tack!

Re: XMLHttpRequest eller jQuery Ajax

Postat: 30 november 2017, 10:52:22
av hawkan
Nej det handlar inte om Cross Domain denna gången.
Webservern indentifierar normalt data och skickar med detta i headern t ex "Content-Type: text/html" (som kommer innan den data man ser) och därigenom får den veta att det är text/html. Den biten är "gratis" vid en webserver.

Jag såg också dessa felrader och det var därifrån jag testade med dataType. Det verkar som att data förväntas vara i XML-format av någon anledning. Ja du testade med en XML-fil och det trodde jag nog skulle funkat, men där ser man.

Jag tror ändå att det bästa är att skaffa en liten webserver och jobba via den. Då slipper man denna typen av lite överraskande problem.