对于重定向到 https://login.microsoftonline.com/ 的请求,“不存在‘Access-Control-Allow-Origin’标头”

2023-12-06

我正在尝试使用访问代码获取响应并得到:

XMLHttpRequest 无法加载“h...://login.microsoftonline.com/d331431b-899c-4666-8094-e82e6bfc3964/oaut...auth%2faad&scope=user_impersonation&state=033f4ad89a574135884fd3a03c1743ab”。请求的资源上不存在“Access-Control-Allow-Origin”标头。起源 'http://本地主机:23589' 因此不允许访问。

使用了所有建议ServiceStack、CORS 和 OPTIONS(无 Access-Control-Allow-Origin 标头)讨论:

added:

Plugins.Add(new CorsFeature(new[] { "http://localhost/", "http://localhost:23589" },
            allowCredentials: true,
            allowedHeaders: "Content-Type, Allow, Authorization"));

乃至:

PreRequestFilters.Add((httpReq, httpRes) =>
{
     //if (httpReq.Verb == "OPTIONS")
     //{
     //    var origin = httpReq.Headers.Get("Origin");
     string origin = httpReq.Headers.Get("Origin");
     httpRes.AddHeader(HttpHeaders.AllowOrigin,  "*");
     httpRes.EndRequest();
     // }
});

还是没有运气。我们使用的是 ServiceStack 版本 4.0.56

请求网址:

>

Request Method:GET
Status Code:200 OK
Remote Address:157.55.208.218:443

响应标头:

HTTP/1.1 200 OK
Cache-Control: no-cache, no-store
Pragma: no-cache
Content-Type: text/html; charset=utf-8
Content-Encoding: gzip
Expires: -1
Vary: Accept-Encoding
Server: Microsoft-IIS/8.5
x-ms-request-id: d2531fb2-2e97-4940-a15d-f3c6f1cd5e7b
client-request-id: 376b2cb0-e1d2-4749-a8b5-adfee1b3ceba
X-Frame-Options: DENY
x-ms-gateway-service-instanceid: ESTSFE_IN_344
X-Content-Type-Options: nosniff
Strict-Transport-Security: max-age=31536000; includeSubDomains
P3P: CP="DSP CUR OTPi IND OTRi ONL FIN"
Set-Cookie: buid=AAABAAEAiL9Kn2Z27UubvWFPbm0gLfvzURnxA_SU_2fqg40MIAq5oFqJPcrl7iSuhLgh52CsEbHynIx5Krpov-SlQ7tVxK9O3EWPdKHzur0dQHXgfE4FLI6Vmv3-HwokZIpKbXA2IAA; expires=Fri, 02-Dec-2016 17:25:56 GMT; path=/; secure; HttpOnly
Set-Cookie: esctx=AAABAAAAiL9Kn2Z27UubvWFPbm0gLdbqNasFxQzD3cBv92w234pND-QPmCQNU9pfwexBLi9fullMTJbXyFHlgwaIpWQHx6OpBt9rHaIVDwlxaAh7MqFmsrHiMcoXcWy55B0veMpU10kthlQdtj37nLx1_p3ocBF3tMJ822MGbR2D-Epr8iTW2AmiL46Q2oxA9gHfuwYBIAA; domain=.login.microsoftonline.com; path=/; secure; HttpOnly
Set-Cookie: x-ms-gateway-slice=productiona; path=/; secure; HttpOnly
Set-Cookie: stsservicecookie=ests; path=/; secure; HttpOnly
X-Powered-By: ASP.NET
Date: Sun, 05 Jun 2016 17:25:55 GMT
Content-Length: 9602

请求标头:

Accept:application/json, text/plain, */*
Accept-Encoding:gzip, deflate, sdch, br
Accept-Language:en-US,en;q=0.8,ru;q=0.6
Cache-Control:max-age=0
Connection:keep-alive
Host:login.microsoftonline.com
Origin:http://localhost:23589
Referer:http://localhost:23589/
User-Agent:Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.102 Safari/537.36

我还尝试在 AppHost 配置方法中添加此代码:

 base.SetConfig(new HostConfig
            {
                GlobalResponseHeaders = {
                    { "Access-Control-Allow-Origin", "*" },
                    { "Access-Control-Allow-Methods", "GET, POST, PUT, DELETE, OPTIONS" },
                    { "Access-Control-Allow-Headers", "Content-Type" },
                },
            });

来自提琴手:

请求标头:

GET /d331431b-899c-4666-8094-e82e6bfc3964/oauth2/authorize?response_type=code&resource=https%3a%2f%2fanalysis.windows.net%2fpowerbi%2fapi&client_id=0d3be5ed-3361-43f5-9d25-a5ccefb11f7e&redirect_uri=http%3a%2f%2flocalhost%3a23589%2fapi%2fauth%2faad&scope=user_impersonation&state=3c41d4ea46a8408fb19fdf05ea07643a HTTP/1.1
Host: login.microsoftonline.com
Connection: keep-alive
Cache-Control: max-age=0
Accept: application/json, text/plain, */*
Origin: http://localhost:23589
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.102 Safari/537.36
Referer: http://localhost:23589/
Accept-Encoding: gzip, deflate, sdch, br
Accept-Language: en-US,en;q=0.8,ru;q=0.6

响应标头:

HTTP/1.1 200 OK
Cache-Control: no-cache, no-store
Pragma: no-cache
Content-Type: text/html; charset=utf-8
Expires: -1
Vary: Accept-Encoding
Server: Microsoft-IIS/8.5
x-ms-request-id: 70fcd73f-f880-4744-b896-6edc491b1d22
client-request-id: a52446b6-a7f0-4afb-ba23-8d27207ddb27
X-Frame-Options: DENY
x-ms-gateway-service-instanceid: ESTSFE_IN_19
X-Content-Type-Options: nosniff
Strict-Transport-Security: max-age=31536000; includeSubDomains
P3P: CP="DSP CUR OTPi IND OTRi ONL FIN"
Set-Cookie: buid=AAABAAEAiL9Kn2Z27UubvWFPbm0gLWnOYMRRqrZRDzgogkab1uuAetOi-f1iLnpE1G5EU3xMkzYdvTgIs2Fz79S07PNcfnEry6eWS8RX_4k8awcIgY063VQ7VvWP6SRRvXfCgpJeIAA; expires=Fri, 02-Dec-2016 22:20:48 GMT; path=/; secure; HttpOnly
Set-Cookie: esctx=AAABAAAAiL9Kn2Z27UubvWFPbm0gLZemnOQ8vijuCpi6h8NzV-CjOfr0MZwZhb4Nfczf20C1TSXORoJbIHCbVBV_MmeuXTR1mbzh9GzFIBmi__ff0M-gGh02fol-sHPyKJnU7Zfi2cEYWensHvmiEJO9Tw5KbO8tWdZxl-XDi7V5IZNNsJWp4LxTVVGkOeyOYieMfJ6mIAA; domain=.login.microsoftonline.com; path=/; secure; HttpOnly
Set-Cookie: x-ms-gateway-slice=productiona; path=/; secure; HttpOnly
Set-Cookie: stsservicecookie=ests; path=/; secure; HttpOnly
X-Powered-By: ASP.NET
Date: Sun, 05 Jun 2016 22:20:49 GMT
Content-Length: 36210

问题是因为你试图调用/api/auth/aadOAuth 通过 Ajax 路由,而不是直接在页面中链接到它。

您无法通过 Ajax 调用 AAD OAuth 路由,因为它重定向到的 url 用于捕获客户端授权(https://login.microsoftonline.com/..) 不允许 CORS,如您看到的错误所示。

这不是 ServiceStack CORS 问题,您不需要它来与本地 API 进行通信(即http://localhost:23589),因为它托管在与 HTML 页面相同的域中。跨域资源共享 (跨域资源共享当使用 Ajax 访问域外的资源(即https://login.microsoftonline.com/..),因为它不允许 CORS,所以不会让您通过 Ajax 访问该 url。

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

对于重定向到 https://login.microsoftonline.com/ 的请求,“不存在‘Access-Control-Allow-Origin’标头” 的相关文章

随机推荐

  • 使用 Flexbox 在具有共享标题的两列布局中拉伸列

    我正在使用 Flexbox 创建带有标题行的两列布局 box sizing border box position relative container border 2px solid gray display flex flex wra
  • VBA - 将 SAPI 语音保存到给定的文件类型?

    My Task 可以在 Office 应用程序中使用语音 我的目标是将 MS SAPI 语音保存为给定的文件类型 AFAIK 我的代码示例保存到 WAV 文件 Problem 我不知道是否可以仅定义所需的文件类型扩展名 或者是否有必要进行一
  • 来自 Qt C++ 应用程序的倍频程图

    我有一个 QT C 应用程序 它使用 QProcess 运行 Octave 程序 我可以通过读取标准输出 错误并使用 write 方法写入其标准输入 例如 octave gt write 5 5 n 来与它进行通信 正如我告诉你的 我得到了
  • 屏幕方向更改时旋转视图(但不是布局)

    我想旋转按钮 文本视图 等 屏幕方向发生变化 但我想保持布局不变 如何做呢 我正在使用线性布局 This is what I mean Create res gt layout gt layout land并将你的 xml 文件放入横向 模
  • 要避免的 jQuery 陷阱 [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心以获得指导 我正在用 jQuery 启
  • dblookupcombobox 有空行

    我有一个关于 DBLookupComboBox 的问题 我有一个程序 其中有我编写的数据库 它拥有一切 除了当我打开 DBLookupComboBox 时 它必须有一行带有空值 因为当用户不想选择任何内容时 但没有一个 如何让空行显示出来
  • Kotlin 中是否有适用于可序列化类型的接口?

    我想创建一个大致如下所示的类 class MyWrapperClass
  • 如何控制推送通知中按钮的功能?

    我能够向 iOS 设备发送推送通知 通知上有一个 关闭 按钮和一个 查看 按钮 当用户点击 查看 按钮时 应用程序将打开根视图控制器 该应用程序内有一个新闻部分 假设该通知是为了提醒用户有新的新闻报道可供他们查看 如果他们点击 查看 将显示
  • 每当 Android 派中的应用程序被杀死时,服务也会被杀死

    我正在通过创建 Android 应用程序来学习 Android 编程 但是每当我杀死应用程序服务时也会被杀死 我在用着JobIntentService 使该应用程序在后台运行 工作意图服务类 public class BackGroundD
  • Windows 服务中的 TCP IP 侦听器

    我正在尝试创建一个需要在后台运行并侦听传入流量的 Windows 服务 正常且常规的 TCP 侦听器 我的代码是 private TcpListener server public void startServer EventLog Wri
  • 如何使 razor 成为现有项目中的默认视图引擎

    我将 MVC 2 项目升级到 MVC 3 如何在现有项目上将默认视图引擎设置为 Razor 编辑 抱歉 我不太清楚 我希望 Razor 成为 添加视图 对话框中的默认类型 简短回答 更改 global asax 以同时使用 Webforms
  • 通讯Arduino-C++不读Arduino

    我有以下代码 QSerialPort arduPort COM5 arduPort setBaudRate QSerialPort Baud9600 arduPort setDataBits QSerialPort Data8 arduPo
  • Push_back() 导致程序在进入 main() 之前停止

    我正在为我的 STM32F3 Discovery 板使用 C 进行开发 并使用 std deque 作为队列 在尝试调试我的代码 直接在带有 ST link 的设备上或在模拟器中 后 代码最终在 main 中输入我的代码之前在断点处停止 然
  • 为什么在 Angular 中使用 $http 而不是 jquery 的 ajax?

    我不明白何时使用 Angular 而不是 jquery 来处理 ajax 请求 例如 我为什么要使用 function ItemListCtrl scope http http get example com items success f
  • Google 地图路线 - 哪个 API?

    我正在尝试获取从用户当前位置到我正在构建的应用程序中用户定义位置的路线 这看起来应该是一件相对容易的事情 但我在使用哪个 API 上遇到了困难 现在我已经成功连接到谷歌路线API但它返回的 JSON 非常奇怪 他们在各处添加了 n 以使其易
  • C 与 C++ 中的编译器将未使用的符号包含在目标文件中

    这可能是一个愚蠢的问题 但也许有人可以提供一些见解 我在头文件中定义了一些全局变量 是的 我知道这很糟糕 但这只是假设的情况 我将此头文件包含在两个源文件中 然后将它们编译为两个目标文件 代码中的任何地方都没有引用全局符号 如果源文件是 C
  • 如何在 Jest 中将数据作为上下文传递?

    我正在尝试使用 Jest 在酶测试中传递上下文 如 Airbnb 文档所示 但上下文正在返回undefined 我不确定我在这里做错了什么 App js class App extends Component componentWillMo
  • 分段错误和堆栈溢出有什么区别?

    例如 当我们调用递归函数时 连续的调用将存储在堆栈中 但是 如果无限继续下去 则会出现错误 该错误是 分段错误 如 GCC 上所示 难道不应该是 堆栈溢出 吗 那么两者之间的基本区别是什么呢 顺便说一句 解释比维基百科链接更有帮助 已经浏览
  • GamesClient 未连接。错误:“调用 connect() 并等待调用 onConnected()。”

    我正在尝试使用GamesClient使用 Google Play 游戏服务的排行榜 现在我已经有了 所以当importbutton单击后 GamesClient用于提交一些分数 如下所示 我收到一条错误消息connect and wait
  • 对于重定向到 https://login.microsoftonline.com/ 的请求,“不存在‘Access-Control-Allow-Origin’标头”

    我正在尝试使用访问代码获取响应并得到 XMLHttpRequest 无法加载 h login microsoftonline com d331431b 899c 4666 8094 e82e6bfc3964 oaut auth 2faad