尝试触发简单的 XMLHttpRequest (GET) 时出现 JavaScript 错误

标签 javascript ajax xmlhttprequest

这里有点像 JavaScript 新手 -

我正在从我的网站上触发这段基本的 JavaScript 代码作为测试:

var req = new XMLHttpRequest();
req.open('GET', 'http://www.google.co.uk/', false);
req.send();
if (req.status == 200) {
    alert(req.responseText);
}

我不断收到以下错误:

[Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsIXMLHttpRequest.send]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: http://localhost/testEx3/Default.aspx :: SendRequest :: line 402" data: no]

有谁知道我在这里做错了什么?

更新:

好的 - 所以我实际上正在尝试做的是对我在本地开发机器上发布的 Web 服务发出 POST 请求 - 我遇到了与上面相同的错误 - 这就是为什么我为了简单起见而放置该示例。现在看来“同源政策”开始发挥作用了——所以现在我发布了 URI 开头部分为 http://localhost/ 而不是 http 的 Web 服务://tempuri.org/.

现在我收到 500 错误。标题中是否缺少某些内容?

var request = new XMLHttpRequest();
request.open("POST", "http://localhost/ApplicationServices.asmx?op=AddressSearch", false, "", "");
request.setRequestHeader("X-Requested-With", "XMLHttpRequest");

request.send(x, y, buffer);

if (request.status == 200) {
    alert("Success");
}
else {
    alert("Failure: " + request.status);
}

最佳答案

看起来您正在尝试发送违反 same origin policy 的请求.

基本上,就 AJAX 请求而言,您只能将请求发送到与发送该请求的页面相同的域。例如:

您正在尝试执行上面的#3。

如果需要发送跨域请求,可以使用JSONP或类似 flensend/flxhr 的东西.

关于尝试触发简单的 XMLHttpRequest (GET) 时出现 JavaScript 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3440451/

相关文章:

Javascript 闭包对象生命周期

javascript - JavaScript 中的媒体查询 - 如何在 "slidesPerView"幻灯片中添加断点和更改 "Swiper"

javascript - 如何将 Route 匹配到除基本(主)路径之外的任何路径?

javascript - Bootstrap 移动下拉菜单

ajax请求后php session 值被删除

jquery - 使用ajax v3的谷歌地图信息窗口

php - 使用 ajax 响应作为函数的参数

ajax - Facebook 聊天如何避免连续轮询服务器?

javascript - 我可以调用 XmlHttpRequest 中的任何方法吗?不仅是 GET、POST、PUT

javascript - http 获取请求状态