AJAX跨域问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了AJAX跨域问题相关的知识,希望对你有一定的参考价值。

产生原因:

同一个IP、同一个网络协议、同一个端口,三者都满足就是同一个域,否则就是跨域问题了,部分浏览器为了安全考虑,不允许不同域名的ajax请求,但可以通过服务端手动修改。

方法一:

response.setHeader("Access-Control-Allow-Origin", "*");

方法二:

JSON格式

{
    "message":"获取成功",
    "state":"1",
    "result":{"name":"工作组1","id":1,"description":"11"}
}

JSONP格式

callback({
    "message":"获取成功",
    "state":"1",
    "result":{"name":"工作组1","id":1,"description":"11"}
})

 

 $.ajax({
             type: "get",
             async: false,
             url: "http://flightQuery.com/jsonp/flightResult.aspx?code=CA1998",
             dataType: "jsonp",
             jsonp: "callback",//传递给请求处理程序或页面的,用以获得jsonp回调函数名的参数名(一般默认为:callback)
             jsonpCallback:"flightHandler",//自定义的jsonp回调函数名称,默认为jQuery自动生成的随机函数名,也可以写"?",jQuery会自动为你处理数据
             success: function(json){
                 alert(‘您查询到航班信息:票价: ‘ + json.price + ‘ 元,余票: ‘ + json.tickets + ‘ 张。‘);
             },
             error: function(){
                 alert(‘fail‘);
             }
         });
     });

原文地址:说说JSON和JSONP,也许你会豁然开朗,含jQuery用例

以上是关于AJAX跨域问题的主要内容,如果未能解决你的问题,请参考以下文章

jQuery跨域ajax:执行时回调

如何解决ajax跨域问题(转)

如何发送跨域ajax请求[重复]

如何解决ajax跨域问题(转)

如何解决ajax跨域问题(转)

跨域 jQuery .AJAX 问题