首页 > 代码库 > AJAX跨域问题

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‘);
             }
         });
     });

AJAX跨域问题