我尝试使用XMLHttpRequest
编写一些客户端JavaScript:
$('#someId').on('input', function() {
var req = XMLHttpRequest();
// …
});
但是我收到以下错误:
XMLHttpRequest不是一个函数。 (' XMLHttpRequest()',' XMLHttpRequest'是XMLHttpRequestConstructor的一个实例)
如何解决这个问题?
答案 0 :(得分:3)
错过new
,必须是:
$('#someId').on('input', function() {
var req = new XMLHttpRequest();
// …
});
你可以在这里阅读更多关于XHRHttpRequest的信息 -
https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest
以及如何在这里使用它 -
https://developer.mozilla.org/ru/docs/XMLHttpRequest
(只有这个页面翻译存在,但谷歌翻译可以帮助很多:))
P.S。如果你正在使用jQuery - 更好地使用$.ajax()
作为@ synthet1c说。
在此处阅读更多相关信息 - http://api.jquery.com/jquery.ajax/
答案 1 :(得分:1)
如果您已经在使用jQuery,则可以使用$.ajax()
方法发出ajax请求:
示例:
$('#someId').on('input', function() {
$.ajax({
url: 'some_file.php',
data: {
postparam_1: 'ok',
postparam_2: 'no'
},
method: 'get',
success: function(x) {
alert(x); // string result from server
},
error: function() {
alert('Error!');
}
});
});
如果你想在你的应用程序中使用它,你必须检索适用于所有浏览器的XmlHttpRequest对象。
var XMLHttpFactories = [
function () {return new XMLHttpRequest()},
function () {return new ActiveXObject("Msxml2.XMLHTTP")},
function () {return new ActiveXObject("Msxml3.XMLHTTP")},
function () {return new ActiveXObject("Microsoft.XMLHTTP")}
];
function createXMLHTTPObject() {
var xmlhttp = false;
for (var i=0;i<XMLHttpFactories.length;i++) {
try {
xmlhttp = XMLHttpFactories[i]();
}
catch (e) {
continue;
}
break;
}
return xmlhttp;
}
答案 2 :(得分:1)
XMLHttpRequest
是构造函数,而不是JavaScript中的(通常)函数,您需要使用new XMLHttpRequest()
$('#someId').on('input', function() {
var req = new XMLHttpRequest();
// …
});
请参阅此MDN文章,了解如何使用XMLHttpRequest
:https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/Using_XMLHttpRequest