使用 Internet Explorer 与 Chrome 和 Firefox 进行跨域 HTTP

2024-04-05

我正在我的 Web 应用程序和服务器之间发出 CORS 请求。该请求是一个简单的授权请求。请求发送后,服务器设置一个“JSESSIONID”cookie,弹出一个对话框,输入您的用户名和密码,然后按提交。一旦凭据正确,httpRequest 就会完成,并且响应标头会设置一个“LWSSO_COOKIE_KEY”cookie 供客户端用于访问。

问题是这在 Internet Explorer 中可以完美地工作,而不是在 Chrome 或 Firefox 中。

这是我的请求代码:

// code snippet from : http://www.html5rocks.com/en/tutorials/cors/
// Create the XHR object.
function createCORSRequest(method, url) {
    console.log("createCORSRequest: ");
    var xhr = new XMLHttpRequest();
    if ("withCredentials" in xhr) {
      // XHR for Chrome/Firefox/Opera/Safari.
      xhr.open(method, url, true);
      xhr.withCredentials = true;   
    } else if (typeof XDomainRequest != "undefined") {
      // XDomainRequest for IE.
      xhr = new XDomainRequest();
      xhr.open(method, url, false);
    } else {
      // CORS not supported.
      xhr = null;
    }
    return xhr;
}

// Make the actual CORS request.
function makeCorsRequest(action,URL) {
    console.log("makeCorsRequest action: "+action+"; URL: "+URL);
    var xhr = createCORSRequest(action, URL);
    if (!xhr) {
        console.log('CORS not supported');
        return;
    }
    // Response handlers.
    xhr.onload = function() {
        var text = xhr.responseText;
        console.log('Response text from CORS request to ' + URL + ': ' + text);
    };

    xhr.onerror = function() {
        console.log('Woops, there was an error making the request.');
    };

    xhr.send();
    return xhr;
}

Firefox 的问题是这个错误:“跨源请求被阻止:同源策略不允许读取远程资源http://someIP:somePort/qcbin/authentication-point/authenticate http://someIP:somePort/qcbin/authentication-point/authenticate。 (原因:CORS 标头“Access-Control-Allow-Origin”丢失)。”

奇怪的是,身份验证 http 请求响应状态为 200,并设置了“LWSSO_COOKIE_KEY”的 cookie 标头,但随后从 makeCorsRequest(action,URL) 调用“onerror”处理程序。

headers and cookies from firefox: This header the server responds by setting the JSESSIONID cookie enter image description here setting the JSESSIONID cookie enter image description here After submitting my username and password the server responds by setting the JWSSO_COOKIE_KEY: enter image description here setting the JWSSO_COOKIE_KEY: enter image description here

Lastly here's the console output: enter image description here

Chrome 的问题与 Firefox 的行为相同。为什么此 http 请求在 Internet Explorer 中有效,但在 Chrome 和 Firefox 中无效?

Here's what the headers and cookies look like in IE (11): Request header: enter image description here Response header: enter image description here Cookies: enter image description here Console: enter image description here Once again. This is identical code used for all these results, but I'm experiencing different behavior in chrome and firefox than in Internet Explorer.


None

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

使用 Internet Explorer 与 Chrome 和 Firefox 进行跨域 HTTP 的相关文章

随机推荐

  • 将目录树表示为递归列表

    我被某项任务困住了 我想要的是一个函数 给定目录路径 它将返回递归列表作为输出 输出的格式应为 myList dir subdir subdir fullFilePath 所以基本上我想将目录树表示为某个列表 我获取了所有文件 获取了每个文
  • 使用 Cocoa 确定两个日期之间的月数

    如何使用 Cocoa 计算两个日期之间的月数 谢谢 斯坦 NSInteger month NSCalendar currentCalendar components NSCalendarUnitMonth fromDate yourFirs
  • 如何为 MVC .Net Core 应用程序创建单个管理员用户

    我正在构建一个本质上是商店的网络应用程序 但我想为网站管理员提供一种简单的方法来添加新产品 但是我想限制网站的这一部分 以便只有管理员可以访问它 目前我对其他用户没有用处 我该如何做到这一点 以便任何拥有管理员用户名和密码的人都可以访问这些
  • ssl:身份验证方法 ssl 需要密码

    在尝试通过 Ansible 连接到 Windows 虚拟机时 我遇到了以下问题 TASK setup lt 10 xx xx xx gt ESTABLISH WINRM CONNECTION FOR USER winad admin on
  • 控制器文件已加载,但类不存在

    我在 Magento 中遇到此错误时遇到问题 控制器文件已加载 但类不存在 完整堆栈位于底部 我本质上是想遵循本教程 在 Magento 中创建新模块 HelloWorld http magento4u wordpress com 2009
  • 使用 DllImport 在 C# 中调用 OpenGL 函数?

    我目前正在为 OpenGL 开发一个 C 实用程序库 对于跨平台窗口管理 我使用 GLFW 并使用 DllImport 成功加载了 glfwCreateWindow 或 glfwMakeContextCurrent 等函数 现在我想使用 O
  • CentOS 和 Ubuntu 上的“常规文件”是什么?

    我的环境是 CentOS 6 9 Ubuntu 16 04 LTS GNU coreutils 8 4 有 test 命令来检查文件 f option man test shows f FILE FILE exists and is a r
  • 二叉树的 Herbrand 宇宙、Herbrand 基础和 Herbrand 模型(序言)

    什么是二叉树的 Herbrand 宇宙 Herbrand Base 和 Herbrand Model binary tree empty binary tree tree Left Element Right binary tree Lef
  • 你能在 Mongo 中为 $addToSet 指定一个键吗?

    我有一个文件 profile set name nick options 0 name joe options 2 name burt options 1 并想添加一个新文档到profile set如果名称尚不存在则设置 无论选项如何 所以
  • SubmissionPublisher 提交时不调用订阅者的 onNext

    每个时间间隔我都会通过特定的查询检索推文 这些推文必须传递给计算和操作这些推文的服务 所以这些服务都是向我的发布者订阅的 所以publisher hasSubscribers 返回true 但是提交或提供函数不会调用我的订阅者的 onNex
  • 快速清除 JSON 缓存?

    我正在处理一些经常更新的 API 数据 我最近发现 当数据在服务器上更新时 数据在手机上无法正确更新 经过几个小时的尝试解决此问题后 我终于尝试从手机中删除该应用程序 然后重新安装 它成功了 经过进一步测试 我发现它打印出旧的 JSON 一
  • 将参数传递给 h:outputtext 标记中的方法

    我想通过将属性传递给在支持 bean 中实现的方法来在 jsf 屏幕中显示文本 我必须将动态值作为属性传递 我尝试了下面的内容 但它似乎是一个不正确的语法
  • PHP 中的函数超时

    有没有办法让函数超时 我有 10 分钟的时间来完成一项工作 该作业包含一个 for 循环 下面是一个示例 arr 有 15 个元素 some function 有时可能需要 1 分钟以上 事实上 有一次它被挂了5分钟 有没有办法让函数调用超
  • DataFrame 按元素除以就地行总和

    我希望每个元素除以行的总和 下面的代码总是出错 熊猫新手 谢谢 df pd DataFrame np random rand 12 reshape 3 4 columns list abcd df row sum df apply lamb
  • 如何在React Native中重置Firebase身份验证密码

    我想知道如何在我的react native项目中重置firebase电子邮件身份验证密码的密码 我想发送一封电子邮件来重置密码 如何使用以下方法做到这一点 firebase auth sendPasswordResetEmail forgo
  • 从php访问json数据

    我在访问 JSON 数据时遇到问题 我对 JSON 和 jquery 很陌生 所以可能有一个简单的解决方案 我很高兴找到答案 我的 jQuery post currentPage php currentPage 1 function dat
  • 如何将第 3 方库添加到 Android AOSP 构建中?

    我正在尝试将 Jackson JSON 库添加到我的 AOSP 项目中 我可以编译我的项目并将其刷新到手机 但出现运行时错误 E JavaBinder 1689 java lang NoClassDefFoundError Failed r
  • 如何查看 ASP.Net MVC 中调用的每个控制器和操作方法?

    我一直致力于其他人用 ASP Net MVC 开发的许多项目 很多时候 我想在调试某些内容时查看页面加载期间调用了哪些控制器和操作 通常我会在控制器中设置一个断点 然后从那里转到视图以查看它是否包含任何 RenderAction Rende
  • fluidvalidation 更改 int/long 的默认错误消息

    有没有办法更改 FluentValidation 中的默认错误消息 我们能够为更复杂的类型设置验证 但简单的 您输入的数据不是整数 样式的东西我们似乎无法理解 这些的内置错误是 值 x 对 y 无效 或类似的内容 有没有办法覆盖这些 没有简
  • 使用 Internet Explorer 与 Chrome 和 Firefox 进行跨域 HTTP

    我正在我的 Web 应用程序和服务器之间发出 CORS 请求 该请求是一个简单的授权请求 请求发送后 服务器设置一个 JSESSIONID cookie 弹出一个对话框 输入您的用户名和密码 然后按提交 一旦凭据正确 httpRequest