c ajax 跨域访问,ajax 请求跨域问题

缘由:

H5那边用ajax请求服务器,因为自己测试的时候全是java+浏览器测试,并没发现什么问题。与H5对接的时候,出现跨域问题。

对于GET请求还好,通过将返回数据包裹在callback里面即可。开始为了省心,便采用了该方法。后面有些请求接口必须使用POST。

因为要做登录校验,开始不做处理,按普通的上传,发现POST请求每次session都会变,根本没法做session校验。后面从网上找了解决方法

HttpServletRequest req= (HttpServletRequest)arg0;

HttpServletResponse res= (HttpServletResponse)arg1;

res.addHeader("Allow-Control-Allow-Methods", "POST,GET,PUT,DELETE,OPTIONS");

res.addHeader("Access-Control-Max-Age", "100");

res.addHeader("Access-Control-Allow-Headers", "Content-Type,Access-Token");

res.addHeader("Access-Control-Allow-Origin", req.getHeader("Origin"));

res.addHeader("Access-Control-Allow-Credentials", "true");

res.addHeader("Access-Control-Allow-Credential", "true");

服务器在设置允许跨域的时候,加上加粗那两行,然后客户端请求的时候加上:

js的ajax,设置

xhrFields:{

withCredentials:true

}

这样就ok了。

顺便说一下:

res.addHeader("Access-Control-Allow-Origin", req.getHeader("Origin"));

如果这儿设置 res.addHeader("Access-Control-Allow-Origin", "*"); 允许所有的源ip的请求,这样是会报错的。

所以我们从请求中取出来,再设置进去就好了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值