2017-02-05 3 views
0

Я делаю и приложение, и мне нужно получить количество стихов главы Библии.
Я получаю информацию от http://www.kingjamesbibleonline.org/
Для этого я делаю XMLHttpRequest для отправки на сервер функции getVerses() с сайта.
Проблема, с которой я столкнулась, заключается в том, что я не получаю .responseText из XMLHttpRequest. Когда я использую firebug и вызываю эту функцию, на вкладке «Сеть»> «Ответ» я получаю только вкладку «Сеть»> «Предварительный просмотр», я получаю ответ.
Где этот ответ, и какая переменная имеет это значение?Ответ NodeJS XMLHttpRequest

Мой код узла выглядит следующим образом:

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

фигу ... nodejs обыкновение иметь проблемы с CORS –

+0

«Вкладка« Сеть »> вкладка« Ответ »... зависает ... это этот узел или нет? –

+0

Ваша проблема: '' callFunc = getMaxVerseForChapter & book = '+' "Genesis" '+' & chapter = '+' "2" ''... изменить это на' 'callFunc = getMaxVerseForChapter & book =' + 'Genesis' + '& chapter = '+' 2'' - другими словами, проще избавиться от значений '' 'вокруг значений книги и главы –

ответ

0

Видимо сервер очень строги, и ожидает, что заголовок будет называться Content-Type и не Content-type. Какой-то плохо написанный материал, очевидно (в PHP). Также избавляйтесь от двойных кавычек вокруг значений, которые вы отправляете.

Здесь вы идете:

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(); 

и поскольку вы жестко прописывать значения, вы действительно не нужно конкатенации:

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

Ты потрясающий. спасибо – alexandre1985