2017-02-05 5 views
0

Ich mache und App und ich brauche die Anzahl der Verse eines Kapitels der Bibel zu bekommen.
Ich bekomme die Info von http://www.kingjamesbibleonline.org/
Um dies zu tun, mache ich eine XMLHttpRequest von der Funktion getVerses() von der Website an den Server zu senden.
Das Problem, dem ich gegenüberstehe, ist, dass ich keinen .responseText von der XMLHttpRequest bekomme. Wenn ich Firebug verwende und diese Funktion anrufe, bekomme ich auf der Registerkarte "Netzwerk"> Registerkarte "Antwort" nur auf der Registerkarte "Netzwerk"> "Vorschau" die Antwort.
Woher kommt diese Antwort und welche Variable hat diesen Wert?NodeJS XMLHttpRequest Antwort

Mein Knoten Code ist wie folgt:

let XMLHttpRequest2 = require("xmlhttprequest").XMLHttpRequest; 

function getVerses() { 
    let xmlhttp = new XMLHttpRequest2(); //: new ActiveXObject("Microsoft.XMLHTTP"); 
    xmlhttp.onreadystatechange = function() { 
     if (xmlhttp.readyState == xmlhttp.DONE) { 
      if(xmlhttp.status == 200){ 
       console.log(xmlhttp.responseText); 
      } 
      else if(xmlhttp.status == 400) { } 
      else { } 
      } 
    } 
    xmlhttp.open("POST", "http://www.kingjamesbibleonline.org/ajax.php", true); 
    xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded"); 
    xmlhttp.send('callFunc=getMaxVerseForChapter&book='+'"Genesis"'+'&chapter='+'"2"'); 
} 

getVerses(); 
+1

macht nichts ... NodeJS gewohnt haben ein Problem mit CORS –

+0

'Netzwerk-Registerkarte> Response-Registerkarte '... hang on ... ist das nodejs oder nicht? –

+0

Ihr Problem ist ''callFunc = getMaxVerseForChapter & Buch =' + '" Genesis "' + '& Kapitel =' + '" 2 "'' ... ändern Sie das zu '" callFunc = getMaxVerseForChapter & Buch = '+' Genesis '+' & Kapitel = '+' 2'' - mit anderen Worten loswerden der '' 'um das Buch und Kapitel Werte –

Antwort

0

Anscheinend ist der Server ist sehr streng und es erwartet, dass die Header Content-Type und nicht Content-type aufgerufen werden. Irgendeine schlecht geschriebene Sache offensichtlich (in PHP). Entfernen Sie auch die Anführungszeichen um die Werte, die Sie senden.

Hier gehen Sie:

let XMLHttpRequest2 = require("xmlhttprequest").XMLHttpRequest; 

function getVerses() { 
    let xmlhttp = new XMLHttpRequest2(); //: new ActiveXObject("Microsoft.XMLHTTP"); 
    xmlhttp.onreadystatechange = function() { 
     if (xmlhttp.readyState == xmlhttp.DONE) { 
      if(xmlhttp.status == 200){ 
       console.log(xmlhttp.responseText); 
      } 
      else if(xmlhttp.status == 400) { } 
      else { } 
     } 
    } 
    xmlhttp.open("POST", "http://www.kingjamesbibleonline.org/ajax.php", true); 
    xmlhttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded"); 
    xmlhttp.send('callFunc=getMaxVerseForChapter&book=' + 'Genesis' + '&chapter=' + '2'); 
} 

getVerses(); 

und da Sie die Werte hartzucodieren, die Sie nicht wirklich brauchen String-Verkettung:

xmlhttp.send('callFunc=getMaxVerseForChapter&book=Genesis&chapter=2); 
+0

Sie sind fantastisch. Vielen Dank – alexandre1985