【发布时间】:2019-08-02 03:41:39
【问题描述】:
我使用 Django-cors-headers 设置了我的 CORS 策略,并具有以下设置:
APPEND_SLASH=False
CORS_ORIGIN_ALLOW_ALL = True
CORS_ALLOW_CREDENTIALS = True
CORS_ORIGIN_WHITELIST = (
'localhost:8000',
'localhost:3000',
'localhost'
)
我还把它添加到了 installed_apps 和中间件中。
现在我正在为前端制作一个 React 应用程序,并使用 AXIOS 来处理我的 API 请求。当我发出 API 请求以登录我的应用程序时,CORS 策略允许它。但是,如果我发出需要令牌的 API 请求,我会得到:
从源“http://localhost:3000”访问“localhost:8000/api/TestConnection/”处的 XMLHttpRequest 已被 CORS 策略阻止:跨源请求仅支持协议方案:http、data、chrome、chrome-extension ,https。
似乎我需要为支持的协议方案允许 XMLHttpRequest,但我在 pypi 文档中找不到任何关于此的内容。
编辑: 这是 AXIOS 请求:
axios.post("localhost:8000/api/TestConnection/",
{headers:
{
'Authorization': "Bearer " + localStorage.getItem('JWTAccess')
}
},
{
testString: 'Hello API'
})
.then(response => {
console.log(response)
})
.catch(error => {
console.log(error);
})
谢谢!
【问题讨论】:
-
它是否适用于 CORS_ORIGIN_ALLOW_ALL = False?
标签: javascript django django-rest-framework cors axios