Jquery ajax跨域调用失败

时间:2012-03-30 12:22:59

标签: jquery ajax

  

可能重复:
  JQuery ajax cross domain

我需要通过ajax从其他网站加载内容。以下代码仅适用于localhost网址,但不会打开像google.com

这样的网址
$.ajax({
    url: urlLeft,
    crossDomain:true,
    success: function(data){
        var loadedId = createLoadedPage();
        data = data.replace(/<script.*?>|<\/script>/mgi,'');
        data = data.replace(/.*<body.*?>|<\/body>.*/gi,'');
        $('#'+loadedId).html(data)
        $('#content_left').html($('#'+loadedId+' #snapwrap_outer').html());
        removeLoadedPage(loadedId);
    },
    dataType: 'html'
});

2 个答案:

答案 0 :(得分:3)

由于same origin policy restriction您无法发送跨域AJAX请求。这是一个guide,您可以查看一些可以使用的解决方法。

答案 1 :(得分:0)

这是因为Same Origin Policy,在你的情况下基本上意味着你不能在你的域之外进行ajax调用,因为浏览器不会让你。你不能绕过这个。

解决方案是将远程调用委托给例如一个PHP脚本(与需要执行的ajax调用相同的位置),它将为您访问数据,并通过ajax调用访问该脚本