最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

如何解决关于Ajax跨域访问session不能保存等问题

来源:动视网 责编:小采 时间:2020-11-27 20:12:34
文档

如何解决关于Ajax跨域访问session不能保存等问题

如何解决关于Ajax跨域访问session不能保存等问题:根据浏览器的保护规则,跨域的时候我们创建的sessionId是不会被浏览器保存下来的,这样,当我们在进行跨域访问的时候,我们的sessionId就不会被保存下来,也就是说,每一次的请求,服务器就会以为是一个新的人,而不是同一个人,为了解决这样的办法,下面这种
推荐度:
导读如何解决关于Ajax跨域访问session不能保存等问题:根据浏览器的保护规则,跨域的时候我们创建的sessionId是不会被浏览器保存下来的,这样,当我们在进行跨域访问的时候,我们的sessionId就不会被保存下来,也就是说,每一次的请求,服务器就会以为是一个新的人,而不是同一个人,为了解决这样的办法,下面这种


注意

在添加基本的允许跨域响应头之后
需要添加 Access-Allow-Credentials:true
另外由于谷歌的安全策略
当withCredentials 为 true 时
ResponseHeader中的 Access-Allow-Origin 不能使用通配符 ‘*’
否则会提示

A wildcard ‘*’ cannot be us

ed in the ‘Access-Control-Allow-Origin’ header when the credentials flag is true. Origin ‘http://url’ is therefore not allowed access.

其他浏览器待测试

根据浏览器的保护规则,跨域的时候我们创建的sessionId是不会被浏览器保存下来的,这样,当我们在进行跨域访问的时候,我们的sessionId就不会被保存下来,也就是说,每一次的请求,服务器就会以为是一个新的人,而不是同一个人,为了解决这样的办法,下面这种方法可以解决这种跨域的办法。

在ajax 请求要加配置

 $.ajax({
 url:url, //加上 xhrFields及crossDomain
 xhrFields: { //允许带上凭据
 withCredentials: true
 },
 crossDomain: true, //以上
 success:function(result){
 alert("test");
 },
 error:function(){
 }
 });

关于 withCredentials

withCredentials:
默认情况下,跨源请求不提供凭据(cookie、HTTP认证及客户端SSL证明等)。通过将withCredentials属性设置为true,可以指定某个请求应该发送凭据。如果服务器接收带凭据的请求,会用下面的HTTP头部来响应。

“Access-Control-Allow-Credentials: true”

如果发送的是带凭据的请求,但服务器的相应中没有包含上面这个头部,那么浏览器就不会把相应交给JavaScript(于是,responseText中将是空字符串,status的值为0,而且会调用onerror()事件处理程序)。另外,服务器还可以在Preflight响应中发送这个HTTP头部,表示允许源发送带凭据的请求。

支持withCredentials属性的浏览器有Firefox 3.5+、Safari 4+和Chrome。IE10及更早版本都不支持。
同时

注意

在添加基本的允许跨域响应头之后
需要添加 Access-Allow-Credentials:true
另外由于谷歌的安全策略
当withCredentials 为 true 时
ResponseHeader中的 Access-Allow-Origin 不能使用通配符 ‘*’
否则会提示

A wildcard ‘*’ cannot be used in the ‘Access-Control-Allow-Origin’ header when the credentials flag is true. Origin ‘http://url’ is therefore not allowed access.

其他浏览器待测试

文档

如何解决关于Ajax跨域访问session不能保存等问题

如何解决关于Ajax跨域访问session不能保存等问题:根据浏览器的保护规则,跨域的时候我们创建的sessionId是不会被浏览器保存下来的,这样,当我们在进行跨域访问的时候,我们的sessionId就不会被保存下来,也就是说,每一次的请求,服务器就会以为是一个新的人,而不是同一个人,为了解决这样的办法,下面这种
推荐度:
标签: 问题 ajax session
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top