【发布时间】:2020-09-03 09:05:49
【问题描述】:
我使用 Sails + Vue 创建了该项目,我将在 github 上与其他人分享该项目。
我对 cors 有疑问。
在 backend() 中,安全的代码是:
module.exports.security = {
cors: {
allRoutes: true,
allowOrigins: '*',
allowCredentials: false,
},
csrf: false
};
在前端(vue)中我扩展了库 axios,并创建了 http
import axios from 'axios';
export const HTTP = axios.create({
baseURL: `http://localhost:1337`,
headers: {
'Access-Control-Allow-Origin': '*',
'Access-Control-Allow-Methods': 'GET,HEAD,OPTIONS,POST,PUT',
'Authorization': `Bearer ${localStorage.getItem('token')}`,
'Access-Control-Allow-Headers': 'Origin, X-Requested-With, Content-Type, Accept, Authorization',
}
})
并且在请求中使用http
import {HTTP} from './http-common';
export default {
post (user) {
return HTTP.post('/api/v1/entrance/signup', user)
.then((response) => Promise.resolve(response))
.catch((error) => Promise.reject(error))
}
}
所以,我在 post 用户中使用 HTTP,但我遇到了 CORS 问题。 但是我在postUser中使用axios,我对CORS没有问题。代码:
import axios from 'axios';
export default {
post (user) {
return axios.post('http://localhost:1337/api/v1/entrance/signup', user)
.then((response) => Promise.resolve(response))
.catch((error) => Promise.reject(error))
}
}
我想要解决问题的建议。谢谢大家
【问题讨论】:
-
1.您不必在客户端请求中设置 CORS 标头(如
Access-Control-Allow-Origin)。如果在服务器端启用了 CORS,这些标头将作为响应 -
你在哪里打电话给
axios.post('http://localhost:1337/api/v1/entrance/signup', user)?服务器端还是客户端? -
@Anatoly 我在客户端打了电话。
-
你得到了什么确切的错误?
-
@Anatoly 我编辑了帖子并添加了图片。
标签: node.js vue.js sails.js vuex vuetify.js