禁止(来源检查失败 - chrome-extension:// 不匹配任何受信任的来源。)
Forbidden (Origin checking failed - chrome-extension:// does not match any trusted origins.)
我正在尝试制作一个 Django API 应用程序,它允许我保存一些我将在浏览器上执行的操作(网络搜索、呼叫、消息发送等)并稍后查看所有这些在我自己的网站上,我做了一个简单的 chrome 扩展来做到这一点。
我已经将 Web 应用程序部署到 Heroku,当 CSRF 保护关闭时它工作正常,但是当我添加此保护时我收到 403 错误,因为:来源检查失败 - chrome-extension ://theIDofMyExtension 不匹配任何受信任的来源。)
我已经安装了 django-cors-headers 库并进行了所有必要的设置(它在我自己的计算机上运行):https://pypi.org/project/django-cors-headers/
我在 CSRF_TRUSTED_ORIGINS 列表中添加了这样的 chrome-extension 来源:
CSRF_TRUSTED_ORIGINS = ['chrome-extension://nfbjppodghgcapmokljafeckhkmbcogd']
我猜这是行不通的,因为这个参考:https://docs.djangoproject.com/en/4.0/ref/settings/#csrf-trusted-origins 说来源必须是 https 或 http,参考还说请求必须有一个与原始主机匹配的引用 header 所以我在 chrome 扩展请求中添加了一个 referer header 如下:
let request = new Request(url, {
method: 'POST',
credentials: 'include',
headers: {
'Content-Type': 'text/plain',
'X-CSRFToken': value.csrftoken,
'X-Referer': 'tracking-leads.herokuapp.com',
},
body: JSON.stringify({
info: value,
}),
});
我不知道还能尝试什么,所以即使您不确定响应,我也很乐意尝试您的解决方案,我真的不想在任何 post请求。
嗯,我很高兴,因为我已经解决了我自己的问题,我会把我所做的:
在这个问题中,添加到本地域 settings.py 上的 ALLOWED_HOST,所以我尝试做同样的事情,但添加了我的 chrome 扩展名的来源,它成功了!
ALLOWED_HOSTS = ["your-domain.herokuapp.com","chrome-extension://theIDofYourExtension"]
我正在尝试制作一个 Django API 应用程序,它允许我保存一些我将在浏览器上执行的操作(网络搜索、呼叫、消息发送等)并稍后查看所有这些在我自己的网站上,我做了一个简单的 chrome 扩展来做到这一点。
我已经将 Web 应用程序部署到 Heroku,当 CSRF 保护关闭时它工作正常,但是当我添加此保护时我收到 403 错误,因为:来源检查失败 - chrome-extension ://theIDofMyExtension 不匹配任何受信任的来源。)
我已经安装了 django-cors-headers 库并进行了所有必要的设置(它在我自己的计算机上运行):https://pypi.org/project/django-cors-headers/
我在 CSRF_TRUSTED_ORIGINS 列表中添加了这样的 chrome-extension 来源:
CSRF_TRUSTED_ORIGINS = ['chrome-extension://nfbjppodghgcapmokljafeckhkmbcogd']
我猜这是行不通的,因为这个参考:https://docs.djangoproject.com/en/4.0/ref/settings/#csrf-trusted-origins 说来源必须是 https 或 http,参考还说请求必须有一个与原始主机匹配的引用 header 所以我在 chrome 扩展请求中添加了一个 referer header 如下:
let request = new Request(url, {
method: 'POST',
credentials: 'include',
headers: {
'Content-Type': 'text/plain',
'X-CSRFToken': value.csrftoken,
'X-Referer': 'tracking-leads.herokuapp.com',
},
body: JSON.stringify({
info: value,
}),
});
我不知道还能尝试什么,所以即使您不确定响应,我也很乐意尝试您的解决方案,我真的不想在任何 post请求。
嗯,我很高兴,因为我已经解决了我自己的问题,我会把我所做的: 在这个问题中,添加到本地域 settings.py 上的 ALLOWED_HOST,所以我尝试做同样的事情,但添加了我的 chrome 扩展名的来源,它成功了!
ALLOWED_HOSTS = ["your-domain.herokuapp.com","chrome-extension://theIDofYourExtension"]