XMLHttpRequest 不是函数
XMLHttpRequest is not a function
我正在尝试使用 XMLHttpRequest
:
编写一些客户端 JavaScript
$('#someId').on('input', function() {
var req = XMLHttpRequest();
// …
});
但我收到以下错误:
XMLHttpRequest is not a function. (In 'XMLHttpRequest()', 'XMLHttpRequest' is an instance of XMLHttpRequestConstructor)
如何解决这个问题?
错过了 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
(目前只有这个页面翻译存在,但是 google 翻译会有很大帮助:) )
p.s。如果您使用 jQuery - 最好使用 $.ajax()
正如@synthet1c 所说。
在此处了解更多信息 - http://api.jquery.com/jquery.ajax/
如果您已经在使用 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;
}
XMLHttpRequest
是构造函数而不是 JavaScript 中的(通常)函数,您需要使用 new XMLHttpRequest()
$('#someId').on('input', function() {
var req = new XMLHttpRequest();
// …
});
参考这篇关于使用 XMLHttpRequest
的 MDN 文章:https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/Using_XMLHttpRequest
我正在尝试使用 XMLHttpRequest
:
$('#someId').on('input', function() {
var req = XMLHttpRequest();
// …
});
但我收到以下错误:
XMLHttpRequest is not a function. (In 'XMLHttpRequest()', 'XMLHttpRequest' is an instance of XMLHttpRequestConstructor)
如何解决这个问题?
错过了 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
(目前只有这个页面翻译存在,但是 google 翻译会有很大帮助:) )
p.s。如果您使用 jQuery - 最好使用 $.ajax()
正如@synthet1c 所说。
在此处了解更多信息 - http://api.jquery.com/jquery.ajax/
如果您已经在使用 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;
}
XMLHttpRequest
是构造函数而不是 JavaScript 中的(通常)函数,您需要使用 new XMLHttpRequest()
$('#someId').on('input', function() {
var req = new XMLHttpRequest();
// …
});
参考这篇关于使用 XMLHttpRequest
的 MDN 文章:https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/Using_XMLHttpRequest