跨域GET、POST的几种方法

会员 发布于 2014/08/26 15:06
阅读 3K+
收藏 21

首先,你要明白:jsonp无法支持跨域POST,浏览器的安全策略就是这么设计的,

跨域GET

  • jQuery-JSONP
  • 或者:<script src="http://www.b.com/result.php?param=value"></script>


跨域POST

修改前台的方案:

  • 1. 如果两则属于同域名下的不同子域名,
    比如:a.qq.com、b.qq.com,可以在a.qq.com提交的页面
    使用document.domain = 'qq.com'; 来规避. 

  • 2. 如果还有文件传输,建议使用Flash做中转,网络上已经有这个解决方案: 
    AJAXCDR http://zyan.cc/ajaxcdr/(不支持文件上传)  
    
    SWFUpload 文件上传,压缩图片等功能 
    两则配合使用 
    但是此方案有一个问题就是在IE下,Cookie无法传递,一般是将SessionID附加到参数中,然后在接收端修改session_id(传递来的ID),这是Flash的通病!


  • 3. easyXDM 
    推荐此方法,兼容所有浏览器
    ,http://easyxdm.net/wp/, 
    在ie6、ie7下是使用flash做传输, 在现代浏览器(Chrome Firefox Safari)下使用web socket

后台提供支持:

  • 1. 写Access-Control-Allow-Origin头,表示服务器支持其它域名的提交,具体请看
    http://www.cnblogs.com/Darren_code/p/cors.html


  • 2. 本域名建立一个中转后台页面,先提交到本域名的页面,再通过cURL等后台脚本语言提交到跨域服务器上
加载中
返回顶部
顶部