ajax跨域问题的解决(PHP和Java)
我从域名a的网站里写个ajax,要请求域名b下的接口数据,很明显,跨域了,普遍的解决方法有两种:
1、jsonp
网上方法一大堆,我不写了,而且我不用这个方法.......因为jsonp的话传参只能是get,所以我不用。
2、增加header头
简单易用,一行代码搞定,利用 CORS,域名b下对应的接口方法里只需添加一个标头,就可以允许来自 域名a 的请求:
PHP:header("Access-Control-Allow-Origin:*");
Java:response.addHeader("Access-Control-Allow-Origin","*");
打开调试工具,如果请求头信息里有Access-Control-Allow-Origin:*,就表示CORS已经启用成功了;
此时,你的ajax返回的数据就能接收到了,happy~~~
PS:第二种方法注意下安全问题,因为你允许任何域名都可以访问,PHP可以设置指定哪些域名可以访问,比如:
PHP:("Access-Control-Allow-Origin:http://www.a.com");
PS2:因为我不是Javaer,所以Java的指定方式不敢妄说,请各路大神解决~~~
Java:response.addHeader("Access-Control-Allow-Origin","http://www.a.com");貌似这样是可以滴;
