zoukankan      html  css  js  c++  java
  • ajax 跨域无法携带cookie 解决办法

    ajax 跨域无法携带cookie,需要用到session,终于完美结局

    xhrFields: {
    withCredentials: true
    },
    添加这个可能是大家都会做的一件事
    但是添加上了之后就出现了另外一个问题
    The 'Access-Control-Allow-Origin' header contains the invalid value 'Origin'. Origin 。。。。。。

       2、服务器server端要配置Access-Control-Allow-Credentials

      我们在客户端设置了withCredentials=true 参数,对应着,服务器端要通过在响应 header 中设置Access-Control-Allow-Credentials = true来运行客户端携带证书式的访问。通过对Credentials参数的设置,就可以保持跨域Ajax时传递的Cookie。

    response.setHeader("Access-Control-Allow-Credentials", "true");

      3、服务器server端要配置Access-Control-Allow-Origin

      到以上配置为止,发送ajax请求,我们发现还会出现一个错误,提示我们 Access-Control-Allow-Origin 不能用 * 通配符。原因是:当服务器端 Access-Control-Allow-Credentials = true时,参数Access-Control-Allow-Origin 的值不能为 '*' 。

      我们重新设置Access-Control-Allow-Origin的值,当服务器端接收到请求后,在返回响应时,把请求的域Origin填写到响应的Header信息里(即谁访问我,我允许谁),代码如下:

    response.setHeader("Access-Control-Allow-Origin", request.getHeader("Origin"));

    添加了这个就可以了

  • 相关阅读:
    (转)值得学习百度开源70+项目
    C#中$的用法
    (转载)《C#高级编程》读书笔记
    C#调用大漠插件
    Visual Studio 2017 扩展推荐
    C#操作Dataset数据集与SQLite数据库
    (转载)C#格式规范
    (转载)DataTable与List<T>相互转换
    FastReport.Net
    (转载)C #开源框架
  • 原文地址:https://www.cnblogs.com/silences/p/8056223.html
Copyright © 2011-2022 走看看