content-security-policy - 内容安全策略:脚本加载失败
问题描述
我正在编写一个 Thunderbird 扩展来将电子邮件添加到 Rackspace 电子邮件帐户垃圾邮件阻止列表。
Rackspace 提供了一个用于将电子邮件添加到帐户黑名单的 API。
我的 Ajax GET 请求是:
$.ajax({
beforeSend: function(request)
{
console.log("beforeSend");
request.setRequestHeader("X-Api-Signature", Signature);
request.setRequestHeader("Accept", "text");
request.setRequestHeader("withCredentials", true);
request.setRequestHeader('crossOrigin','anonymous'),
console.log("beforeSend Request %o: " , request);
return true;
},
contentType: 'application/x-www-form-urlencoded',
crossDomain: true,
dataType: 'jsonp',
method: 'GET',
type: 'GET',
url: Api_Obj.Url,
当我使用 url 提交 Ajax GET 请求时:
(帐号 123456 为实际帐号的占位符,出于安全考虑)
我得到:
源“https://api.emailsrvr.com/v1/customers/123456/domains/sandypondconsulting.com/spam/blocklist/EglogicsSoftech@outlook.com?callback=jQuery36003174572175672028_1625074250859&_=1625074250860”的加载失败。
我已经设置了清单:
"content_security_policy" : "script-src 'self' https://api.emailsrvr.com; object-src 'self'",
Ajax 错误函数参数具有以下值:
味精:错误
错误:错误
当我单击加载失败错误中的 url 时,我得到:
<unauthorizedFault xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://api.emailsrvr.com/v0/Schemas" code="403">
<message>Authentication failed.</message>
<details>6/30/2021 1:34:21 PM</details>
</unauthorizedFault>
未经授权的错误告诉我,我可能错误地生成了 Rackspace API 所需的 X-Api-Signature。
所以,看起来我有两个问题:
- 脚本加载失败。
2) UnauthorizedFault
我希望首先解决脚本加载问题。然后,找出 UnauthorizedFault 2nd。
谢谢,埃德
解决方案
推荐阅读
- c# - 桌面应用程序中的 Google 身份验证
- c - 命令提示符与通过调试传递命令参数
- javascript - 如何在 jquery 中为多个步骤修复“Radio”
- gluon-mobile - 如何在运行时设置请求方向?
- django - 为什么我们在 Django-views 中使用 form.save(commit=False)?
- android - 我可以在不使用 push() 的情况下使用相同的 id 插入多个值吗?因为如果我使用 push() 它正在创建一个唯一的密钥。所以我不需要那个
- swift - Swift:Facebook Graph API 不接受有效的 access_token
- c# - Xamarin Android C# 断开连接后恢复下载
- mysql - 我可以在 GroupBy 中使用偏移(跳过)吗?
- bootstrap-4 - 使用 `img-fluid` 时,Bootstrap 的 `col .col-md-4` 类不起作用