我正在尝试在节点服务器上使用本地服务(端口8080)的应用程序中发出GET请求。我正在使用Axios向同时也在本地(端口8000)提供服务的django REST服务器发出请求。
我的请求如下:
axios.get('http://127.0.0.1:8000/recipes/',{headers: {"Access-Control-Allow-Origin": "*"}})
在Django方面,我已将它们包含在中间件中
MIDDLEWARE = [
'django.middleware.common.CommonMiddleware',
'corsheaders.middleware.CorsMiddleware',
]
,并且在我已安装的应用中:
INSTALLED_APPS = [
'corsheaders',
]
并包含此设置:
CORS_ORIGIN_ALLOW_ALL = True
但是我仍然收到CORS错误:
Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at http://127.0.0.1:8000/recipes/. (Reason: missing token ‘access-control-allow-origin’ in CORS header ‘Access-Control-Allow-Headers’ from CORS preflight channel).
知道我缺少什么吗?
答案 0 :(得分:1)
我知道了。
我需要删除:
{headers: {"Access-Control-Allow-Origin": "*"}
从请求。显然,标头应仅是响应的一部分。
删除后,一切正常。
答案 1 :(得分:0)
您需要创建一个axios实例,将URL的域部分放在baseUrl中,而其余部分在getUrl中就这么简单。
var instance = axios.create({
baseURL: "http://localhost:8088"
});
instance.get(url)
.then(function(response) {
})