我是JS的新手,我正在使用XHR来连接mongolab上托管的mongodb。
我使用REST因为mongo没有js驱动程序(他们只有node.js驱动程序,我不能将它用于我的项目)。 所以,我在我的数据库上使用GET请求,然后我不知道如何检索响应。 这是我的GET功能:
function getRequest(callback){
var xhr = getXMLHttpRequest();
xhr.onreadystatechange = function() {
if (xhr.readyState == 4 && (xhr.status == 200 || xhr.status == 0)) {
callback(xhr.responseText);
}
};
xhr.open("GET",restURI+apiKey, true);
xhr.send(null);
console.log(xhr);
console.log(xhr.responseText);
}
function readData(sData) {
XHR reading
if (sData == "OK") {
alert("All clear");
} else {
alert("Some issues");
}
}
我尝试时得到一个空字符串:
console.log(xhr.response);
所以我习惯假设我的REST请求失败但是没有,当记录xhr对象时我得到了这个:
所以我的问题是:
response
和responseText
在xhr对象的第一行是空的?答案 0 :(得分:1)
在这里,xmlhttprequest with json:
<div id="id01"></div>
<script>
var xmlhttp = new XMLHttpRequest();
var url = "myTutorials.txt";
xmlhttp.onreadystatechange = function() {
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
var myArr = JSON.parse(xmlhttp.responseText);
myFunction(myArr);
}
}
xmlhttp.open("GET", url, true);
xmlhttp.send();
function myFunction(arr) {
var out = "";
var i;
for(i = 0; i < arr.length; i++) {
out += '<a href="' + arr[i].url + '">' +
arr[i].display + '</a><br>';
}
document.getElementById("id01").innerHTML = out;
}
</script>
参考:http://www.w3schools.com/json/json_http.asp
希望得到这个帮助。