0

我通过 OAuth 和 OneNote API 登录到我的 OneNote/OneDrive 帐户的 webapp 突然遭到 Chrome Stable 55 的拒绝(Chrome Canary 58 中的同样问题)(在 Windows 10 下),控制台中的响应如下:

Refused to execute script from 'https://login.live.com/oauth20_authorize.srf?client_id=<xxx>&callback=jQuery...' because its MIME type ('text/html') is not executable, and strict MIME type checking is enabled.

我的任何 PHP 身份验证代码都没有变化,它已经运行了好几个月。

我的本地 IIS 服务器和远程 Apache 服务器都存在同样的问题。

我会非常感谢任何建议。

[编辑-2017 年 2 月 3 日]

我刚刚又遇到了同样的拒绝。这是完整的授权 URL(client_id 为空白,jQuery id 被缩短。奇怪的是,我的代码(改编自 OneNote API PHP SDK 示例)中没有任何内容将“&callback=jQuery”添加到查询字符串中:

https://login.live.com/oauth20_authorize.srf?client_id=<XXX>&scope=wl.signin%2Cwl.basic%2Cwl.offline_access%2Coffice.onenote_update&response_type=code&redirect_uri=http%3A%2F%2Fleapmap.com%2Fleapmap%2Faccess.php&display=popup&locale=en&callback=jQuery213...

看起来问题出在 '&callback=jQuery...' 但它是如何附加到查询字符串的???

4

1 回答 1

0

我已经找到了拒绝的来源。在通过登录序列的一个特定路径上,我使用 jQuery 使用“jsonp”数据类型对 MS 登录脚本进行 Ajax 调用。这就是将“&callback=”附加到查询字符串并扰乱 MS 登录脚本的原因。解决方案:在这种情况下避免使用 jQuery 进行 Ajax 调用。

于 2017-02-04T05:21:45.863 回答