Ajax请求跨域问题
-
jsonp方案
只适用于get请求的跨域,基本原理是将返回JSON结果封装成js函数代码。js代码资源和图片是允许跨域访问。
/hello ---> {"msg":"hello json"}
jsonp模式 /hello --> 函数名({"msg":"hello json"});
-
Cors方案(项目采用方案)
跨域资源共享,在服务器端设置respones响应header信息。
httpResponse.setHeader("Access-Control-Allow-Origin", "*"); httpResponse.setHeader("Access-Control-Allow-Methods", "GET,POST,PUT,DELETE");
提示:可以利用Filter或拦截器设置跨域参数。 在SpringBoot可以使用@CrossOrigin(origins={"*"})注解
-
代理方案
如果调用第三方服务,不能使用前两种情况,可以写代理项目。在代理项目中用Java访问服务,不涉及资源跨域问题。
Ajax--->代理工程--java/设置cors参数-->微信服务