跨源资源共享中 this.withCredentials 属性的问题

2024-04-27

我们正在实现一个基于 AngularJS 的应用程序,该应用程序使用托管在不同域中的 REST Web 服务。以下脚本用于 CORS,它在 Chrome 和 FireFox 上完美运行。在 IE9 和 Safari 中进行身份验证时存在问题。看来问题出在带有凭据这些浏览器中的属性。 IE和Safari还有其他方式支持CORS吗?

<script type="text/javascript">
     XMLHttpRequest.prototype.realSend = XMLHttpRequest.prototype.send;
     XMLHttpRequest.prototype.send = function(vData) {
        this.withCredentials = true;
        this.realSend.apply(this, arguments);
     };
</script>

根据我们尝试的不同场景,我们可以得出以下总结。希望这会有用。

  1. 根据浏览器规范 IE10+ 和 Safari 4+ 版本 支持 XHR 和 withCredentials 属性。
  2. 这可以用于 CORS,不会出现上面脚本中的任何问题。
  3. 对于其他 IE 版本 (9-),我们需要使用 XDR。
  4. URL 重写 mod 在服务器端未成功 来到 HTTPS。

解决方案非常简单。默认情况下,IE 和 Safari 已禁用第 3 方 cookie。由于一旦用户输入凭据进行登录,我们就会使用两个不同的域,因此这些浏览器无法保存该 cookie。因此,所有其他请求均未经授权。

允许第 3 方 cookie 的步骤

  • IE 10 - Internet 选项 > 隐私 > 高级 > 第三方 Cookie > 接受
  • Safari - 首选项 > 隐私 > 阻止 Cookie > 从不

由于这个问题,我们发现在 AngularJS 1.1.1+ 版本中,他们通过在“config”模块中设置“withCredentials”值来轻松实现这一点( $httpProvider.defaults.withCredentials = true;)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

跨源资源共享中 this.withCredentials 属性的问题 的相关文章

  • JavaScript:解决意外字符“#”

    介绍 我的 React 应用程序可以执行npm run build在开发模式下 webpack config dev js 但不在生产模式下 webpack config prod js 抛出以下错误 Module parse failed
  • 使用 JavaScript 将数字缩写(5.2k、1.7m 等)转换为有效整数

    我有一个 Google 文档 其中有一列包含用 速记 编写的各种数字 例如 5k for 5 000 86 62k for 86 620 4 1m for 4 100 000 1 2b for 1 200 000 000 我想使用 Java
  • 处理量角器中的未知错误

    我有一个protractor通过配置多个浏览器进行设置multiCapabilities 在 browserstack 上运行测试 我的主要量角器规格 测试之一包含以下内容afterEach block afterEach function
  • 使用Web蓝牙API时找不到移动设备

    我正在学习 Web 蓝牙 API 使用 google 开发控制台 我无法找到我的移动设备 还尝试了 github 上提供的演示 https github com WebBluetoothCG demos https github com W
  • 检索博客中所有标签的列表

    有没有办法使用 gdata api 检索所有列表labels在博主中 我需要根据该列表创建一个菜单 但不能简单地列出所有帖子并获取它 因为它是一个繁忙的博客 并且有超过 2000 个帖子 以下是使用 json 调用获取标签列表的最简单方法
  • 如何在 AngularJS 初始化之前防止元素显示( ng-show )

    在AngularJS中 我想知道如何防止在ng show生效之前页面上显示的元素 我发现一些帖子谈论ng cloak 但在我的情况下似乎不起作用 可能ng cloak是为了防止双花括号而不是 Element 样式 有人谈论的另一种方式是在
  • (无限?)JavaScript 代码中的循环

    我有以下 JavaScript 代码来在网站上 显示 XML function createChild node tabindex var child node childNodes var r var tabs for i 0 i
  • 从 iframe 中打开 iframe fancybox,以便它在父级中打开

    我可以让它工作 从 iframe 中打开一个 fancybox IMAGE a href Open something a 我遇到的问题是我需要打开一个 fancybox IFRAME 示例代码或任何想法将不胜感激 Thanks 简单来说
  • 如何防止机器人程序和垃圾邮件 API 请求?

    我正在使用react native 开发一个Android 应用程序 该应用程序与我正在为该应用程序开发的API 进行通信 该 API 是使用 Laravel 和 Laravel Passport 构建的 我知道 Android 应用程序可
  • 当 querySelectorAll 在不使用库的情况下不可用时,按属性获取元素?

    p 你怎样才能做到相当于 document querySelectorAll data foo where 查询选择器全部 https developer mozilla org en DOM Document querySelectorA
  • 创建地图后向 Google 地图 v3 添加标记

    我对使用 Google Maps API 比较陌生 现在我正在开发一个项目 用户可以选择各种搜索过滤器并查看结果自动显示在地图上 而无需重新加载页面 到目前为止 我的方法是创建一个控制地图的 Javascript 对象 以便我可以按照我的意
  • 从 json 创建下拉列表

    我有一个这种形式的 json COLUMNS ID Name DATA 1 Joe 2 Sam 3 Doug 我正在寻找一个如何在 javascript 中从该数据创建下拉列表的示例 但 json dropdown 列表的所有示例 json
  • svg 圆不是用 javascript 绘制的

    我一直在尝试使用 HTML 中的 javascript 来进行 svg 操作的 hello world 我编写了下面的代码 虽然它生成了正确的 html 但我在浏览器中没有看到任何输出 也没有看到任何错误
  • 使用“onclick”和 JavaScript 获取按钮上的 X/Y 坐标

    我是一名 JavaScript 初学者 正在寻找一种方法来获取单击按钮时的 x 和 y 坐标 这适用于 Opera IE9 和 Chrome 但我无法让它在 Firefox 中工作 到目前为止 这是我的代码 JavaScript 中的函数
  • 如何更新状态变更指令

    我有一个根状态 它定义了 Angular 模板的整体结构 在根状态下 我包含侧边栏 其中通过根据状态更改的指令具有动态菜单 像这样 state root abstract true url root templateUrl views ro
  • 通过 javascript 将 onsubmit 添加到表单

    您将如何仅通过 Javascript 将 OnSubmit 属性插入到表单中 我对 javascript 还很陌生 所以如果您能够提供详细的示例代码 那将是最有帮助的 情况是这样的 我通过 Chargify 支付平台 使用托管注册页面来处理
  • Firefox 扩展中的 localStorage

    我正在尝试从 Firefox 扩展访问页面的 localStorage 我的理解是content给出了参考window当前页面的 当我尝试访问页面的 localStorage 时content localStorage 我想我正在得到它的参
  • AngularJS + Laravel 5 身份验证

    在使用 AngularJS 构建 SPA 时 我想在 AngularJS 网站中实现用户身份验证 但是 我不知道从哪里开始以及最佳实践是什么 基本上我有一个确定可以担任一个或多个角色 我寻找了一些例子 这样我就可以对如何正确处理这个问题有一
  • 过早退出 Qualtrics 中的循环和合并块

    我目前正在进行一项 Qualtrics 调查 受访者必须解决一长串字谜问题 然后回答一些人口统计问题 为了使变位词部分更容易 我使用了循环和合并块 第一个字段是要解决的变位词 第二个字段是变位词的解决方案 因此调查可以根据受访者的答案来检查
  • 如何在 vue.js 中使用 SVG.js 插件?

    我在用svg js在我的 Laravel 项目中运行vue js 这就是我使用的方式svg js Step 1 安装svg js作为我的 vue 应用程序中的插件 import svgJs from svg js dist svg expo

随机推荐