下面是我试图用来显示另一个页面的HTML内容的代码。我无法让代码工作,每次都收到错误。我在这里缺少什么?
$.ajax({
url: 'http://www.msn.com',
type: 'GET',
dataType : "text/html",
success: function (result) {
alert('success');
alert(result);
},
error: function() {
alert('error');
}
});
答案 0 :(得分:3)
您无法执行跨域AJAX请求(除非专门为其设置服务器)。
您可以做的最好的事情是在您的服务器上调用PHP脚本,然后从另一台服务器获取HTML并将其发送回您的页面。
答案 1 :(得分:3)
由于浏览器安全限制,大多数“Ajax”请求都受same origin policy的约束;请求无法成功从其他域,子域或协议中检索数据。
脚本和JSONP请求不受相同的原始策略限制。
答案 2 :(得分:2)
您只能向自己的域发出ajax请求。将它指向您自己的页面,您的成功函数将被调用。
答案 3 :(得分:1)
在Chrome中,打开Web Inspector(例如右键单击,检查元素)并转到“控制台”选项卡,然后运行该代码。然后,您将真正看到您正在触发的跨域脚本安全性错误。
答案 4 :(得分:1)
如果您确实打算执行跨域AJAX请求并且您正在寻找HTML响应,那么您可能需要查看this article by James Podolosky,在那里他讨论通过YQL管理这些请求并提供插件通过覆盖jQuery.ajax函数来自动执行此操作,允许您按照预期使用它。
答案 5 :(得分:1)