NodeJS XMLHttpRequest响应

时间:2017-02-05 05:18:10

标签: javascript ajax node.js

我正在制作和app我需要获得圣经章节的经文数量。
我从http://www.kingjamesbibleonline.org/获取了信息 为了做到这一点,我正在创建一个XMLHttpRequest,从站点的函数getVerses()发送到服务器。
我面临的问题是我没有从XMLHttpRequest获得.responseText。当我使用firebug并调用该函数时,在“网络”选项卡中>响应选项卡我只在网络选项卡上获得>预览我得到了答案 这个答案来自何处以及具有此值的变量是什么?

我的节点代码如下:

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 个答案:

答案 0 :(得分:0)

显然服务器非常严格,它希望标题被称为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); 。显然是某种写得不好的东西(在PHP中)。还要删除您发送的值周围的双引号。

你走了:

@Override
public void onSwiped(RecyclerView.ViewHolder viewHolder, int direction) {
    final int poz = viewHolder.getAdapterPosition();
    rentAnnounceAdapter.remove(poz);
}

由于您正在对这些值进行硬编码,因此您并不需要字符串连接:

@Override
public void onSwiped(RecyclerView.ViewHolder viewHolder, int direction) {
    final int poz = viewHolder.getAdapterPosition();
    String ID = rentAnnounceAdapter.getList()
            .get(poz)
            .getAnnounceID();
    DatabaseReference dbRef = FirebaseDatabase.getInstance()
            .getReference();
    dbRef.child(REF_RENT)
            .child(ID)
            .removeValue();
    StorageReference ref = FirebaseStorage.getInstance()
            .getReference();
    ref.child(REF_RENT_IMAGES)
            .child(ID)
            .delete().addOnSuccessListener(new OnSuccessListener<Void>() {
        @Override
        public void onSuccess(Void aVoid) {
            rentAnnounceAdapter.remove(poz);
        }
    });
}