关于ajax+java跨域问题

最近做项目,遇到跨域问题,网上百度了一下,大致有三种方式解决:

1、使用jsonp:

缺点是只能支持GET方法,不推荐;

2、使用跨域浏览器:https://www.cnblogs.com/laden666666/p/5544572.html

缺点是客户量大的时候不可能每台客户机上的浏览器都去设置,不推荐(自己测试时可使用);

3、使用代理:

原理就是绕过浏览器端,具体如何操作还不太清楚,不推荐;

4、在后端(java、php)加上请求头:

我使用的是SpringMVC4.0.2,具体操作如下:

a.在后端方法中加入

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

b.前端使用ajax:


可以解决跨域,但有小问题:

使用contentType: "application/json"传输,只能把参数放置在url中进行传输,不能把参数放在data:{}中,放在data中实际传参是把参数放到了request payload中,后台request.getParameter()取不到参数,不知道为啥,具体取值很复杂:http://blog.csdn.net/your_heart_private/article/details/71436210

所以只能把参数放在url中进行传输。

若为SpringMVC4.2+,框架中提供跨域标签:https://www.cnblogs.com/cielosun/p/6741307.html,未测试过。


若上述方法进行还是不能解决跨域,检查前端html头:

<meta http-equiv="Access-Control-Allow-Origin" content="*">
<meta http-equiv="content-security-policy">


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值