美文网首页
ajax 请求跨域问题

ajax 请求跨域问题

作者: 倔犟的贝壳 | 来源:发表于2018-08-07 14:11 被阅读12次

缘由:

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的请求,这样是会报错的。

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

相关文章

  • 前端跨域

    什么是ajax跨域 ajax跨域的原理 ajax出现请求跨域错误问题,主要原因就是因为浏览器的“同源策略”,可以参...

  • SpringMVC 进行ajax跨域请求访问

    关于 springmvc 3.x 版本对ajax跨域请求访问 ajax 请求后,浏览器出现跨域的问题那么在当前环境...

  • ajax跨域请求

    ajax跨域请求(jsonp) 利用JSONP解决AJAX跨域问题的原理与jQuery解决方案JSONP jQue...

  • 解决ajax跨域问题

    Jsonp解决ajax跨域问题 CORS解决ajax跨域问题

  • webpack+vue+axios 环境下的跨域问题

    问题 在项目中向后端进行 ajax 请求时,出现游览器阻止跨域请求的问题。 引入 axios,并解决跨域 axio...

  • 彻底让你明白跨域(服务器端为node)

    跨域只是针对ajax请求的。 如果产生跨域,那么将请求不到数据。 发起ajax请求所依赖的html页面的url地址...

  • 14-vue-cli脚手架配置代理

    1. 问题:如果解决前端的 ajax 请求跨域的问题 首先可以发送 ajax 请求的方法有哪些? xhr js自带...

  • 解决跨域问题

    概述 在浏览器端进行 Ajax 请求时会出现跨域问题,那么什么是跨域,如何解决跨域呢?先看浏览器端出现跨域问题的现...

  • 跨域问题

    概述 在浏览器端进行 Ajax 请求时会出现跨域问题,那么什么是跨域,如何解决跨域呢?先看浏览器端出现跨域问题的现...

  • Ajax跨域请求与SpringMVC结合的一些坑

    Ajax跨域的概念就不在这边陈述了... Ajax跨域请求真正的请求之前会进行一次预请求OPTIONS请求,为了让...

网友评论

      本文标题:ajax 请求跨域问题

      本文链接:https://www.haomeiwen.com/subject/numujftx.html