ajax的跨源url问题

时间:2014-09-05 05:21:00

标签: jquery ajax

由于路径问题,我在加载ajax文件时遇到问题,当网址没有“www”时在它。

所以这里有一个例子ajax代码:

$('#show_helper').click(function(){
    $.ajax({
        beforeSend: start_loader(),
        type : 'POST',
        url  : 'http://example.com/ajax/show-helper.php',
        data : 'x=1',
        success : function() {
            window.location.reload();
            end_loader();
        }
    }); 
});

所以这在www.mydomain.com上运行正常,但如果我在http://example.com我收到此错误:

阻止跨源请求:同源策略禁止在http://example.com/ajax/show-helper.php读取远程资源。这可以通过将资源移动到同一域或启用CORS来解决。

那么我该如何解决这个问题呢?我尝试在ajax代码中将url路径更改为//example.com ...但是没有用。

2 个答案:

答案 0 :(得分:0)

好吧,看起来只是将网址更改为例如/ajax/show-helper.php解决了这个问题

答案 1 :(得分:-1)

如果您确定跨域访问此网址,则可以使用jsonp

$.ajax({
type : "get",
async:false,
url : "http://example.com/ajax/show-helper.php",
dataType : "jsonp",
jsonp: "callbackparam",
jsonpCallback:"success_jsonpCallback",
success : function(json){
    window.location.reload();
    end_loader();
}
});

否则,您可以设置< base>在< head>中标记,然后您可以使用网址" ajax / show-helper.phh"