Jsonp post 跨域方案
一、什么叫跨域?
跨域是指,从站点A上请求B站点上的资源。
当以下3种情况的任一种出现,都会出现跨域问题。(由于JS同源策略的影响,会限制跨域的数据通信)
1、域名不同 ( 域名和此域名对应的ip )
2、端口不同
3、协议不同 (http、https)
二、Cross-Origin Resource Sharing:跨域资源共享
header('Access-Control-Allow-Origin:*');是html5新增的一项标准功能,IE10以下 版本的浏览器不支持。
客户端更改:
添加:crossDomain: true
修改:dataType: "json"
服务器端添加(PHP作为后端语言):
header('Access-Control-Allow-Origin: *');
*:表示允许所有其他的域访问
www.baidu.com: 表示只有百度这个域名可以访问服务器资源。其他则会被限制。
header('Access-Control-Allow-Methods: POST');
header('Access-Control-Max-Age: 1000');
设置完成后,跨域请求成功。在firefox的http请求中可以看到相关信息。

另外:
如果要操作Cookie,还得继续补增响应头:
<?php header('Access-Control-Allow-Credentials:true'); ?>
浏览器端。需要将 XMLHttpRequest 对象的 withCredentials 属性设置为 true,JQuery1.5.1+ 就开始提供了相应的字段,使用方式如下:
$.ajax({
url:"www.***.com",
xhrFields:{
withCredentials:true
},
crossDomain:true
});

浙公网安备 33010602011771号