如何在 REST API 上通过 axios 设置 POST 请求?
头
我看到得到不正确的标题,但我不明白,为什么?此外,我经常遇到这样一个事实,即公理的文档根本不起作用。
示例获取 GET 请求,它有效:axios 中的动态主机
const configAxios = {
headers: {
'Content-Type': 'application/json; charset=UTF-8',
'Access-Control-Allow-Origin': '*',
},
};
const data = JSON.stringify({
cardData: this.cardData.brand,
});
axios.post('api/products', {
data,
},
configAxios,
)
.then((req) => {
this.data = req.data;
console.log(req);
})
.catch((err) => {
console.warn('error during http call', err);
});
这是获取主机 API 所必需的:
PS:这只能以这种方式工作。
const baseURL = 'http://localhost:8080';
if (typeof baseURL !== 'undefined') {
Vue.axios.defaults.baseURL = baseURL;
}
- 公理版本: 例如: v0.16.2
- 环境:例如:节点 v8.9.4、铬 64.0.3282.119、Ubuntu 16.04
- Symfony 4.0.4
- Vue.js 2.4.2
- Vue-axios 2.0.2
如果 API 和客户端位于不同的域名上,则需要正确配置 CORS 标头以允许客户端联系服务器。您还需要将授权标头列入白名单。
使用API Platform和Symfony,您可以使用NelmioCorsBundle轻松完成。如果您使用 Symfony 4/Flex,请运行:
$ composer req cors
该软件包将自动安装并正确配置。 "内容类型]甚至会被列入白名单。