跨域$ .ajax请求无效

下面是我试图用来显示另一个页面的HTML内容的代码。 我无法让代码工作,每次都收到错误。 我在这里想念的是什么?

$.ajax({ url: 'http://www.msn.com', type: 'GET', dataType : "text/html", success: function (result) { alert('success'); alert(result); }, error: function() { alert('error'); } }); 

您不能执行跨域AJAX请求(除非专门为它设置服务器)。

您可以做的最好的事情就是在服务器上调用PHP脚本,然后从另一台服务器获取HTML并将其发送回您的页面。

由于浏览器安全限制,大多数“Ajax”请求都遵循相同的原始策略 ; 请求无法成功从其他域,子域或协议中检索数据。

脚本和JSONP请求不受相同的源策略限制。

资料来源: http : //api.jquery.com/jQuery.get/

您只能向自己的域发出ajax请求。 将它指向您自己的页面,您的成功函数将被调用。

在Chrome中,打开Web Inspector(例如,右键单击,检查元素)并转到“控制台”选项卡,然后运行该代码。 然后,您将真正看到您正在触发的跨域脚本安全性错误。

如果您确实想要执行跨域AJAX请求并且您正在寻找HTML响应,那么您可能需要查看James Podolosky撰写的这篇文章 ,他在那里讨论通过YQL管理这些请求并提供自动化插件通过覆盖jQuery.ajax函数,允许您按照预期使用它。

如果你使用外部API很好,你可以使用YQL (但它并不完美)。

检查这个小提琴 ,你会发现它有效。 也许这不适合你,只是扔掉它。