解决ajax请求跨域

时间:2023-11-23 10:02:38

跨域大部分需要通过后台解决,引起跨域的原因:
  3个问题同时满足 才可能产生跨域问题,即跨域(协议,主机名,端口号中有一个不同就产生跨域)

下面是解决方法

方法一

   // ajax请求跨域
/*
*解决ajax跨域----jsonp
*/
function httpReq() {
$.ajax({
type:"get",//必须是get请求
url: "/testJsonp",
data: "data",
dataType:"jsonp",//请求的数据类型
jsonp:"callback",//请求类型是回调
jsonpCallback:"callbackFunction",//数据请求成功时回调的方法
success: function (response) {
console.log(response);
}
});
} /**
* java部分
*/
@Controller
public class TestController {
@RequestMapping(value="/testJsonp")
public void testAjaxJsonp(@RequestParam String callback,HttpServletResponse response){
try {
       // 这里jsonp返回的数据是固定格式 文后有详细解释
response.getWriter().print(callback+"({\"id\":1})");
response.flushBuffer();
} catch (Exception e) {
e.printStackTrace();
}
}
}

方法二:Java解决

  1. /**设置响应头允许ajax跨域访问**/
    response.setHeader("Access-Control-Allow-Origin","*");