不要在api上设置POST请求,获取406 Not Acceptable。 试图使用axios并得到406错误。被认为是axios导致问题的原因。然后我尝试使用fetch()并再次获得406错误。
我认为没有设置标题Content-Type
,当我发送他的时候 - 获得400个错误请求并在标签预览Unauthorized header content-type
中。
需要你的帮助,我做错了什么? 谢谢大家的帮助。
第一个示例fetch()代码:
const json = JSON.stringify({
a: 1,
b: 2,
});
fetch('http://localhost:8080/api/products', {
method: 'POST',
headers: {
// 'Content-Type': 'application/json',
},
body: json,
});
第二个示例Axios代码:
const data = JSON.stringify({
data: this.cardData.brand,
});
const configAxios = {
headers: {
// 'Content-Type': 'application/json',
},
};
axios.post('api/products', data, configAxios)
.then((res) => {
this.cardData.brand = res.data;
console.log(res);
})
.catch((err) => {
console.warn('error during http call', err);
});
答案 0 :(得分:1)
<强>解决方案<!/强>
在axios或fetch()代码中取消注释字符串:
headers: {
'Content-Type': 'application/json',
},
如果你使用Symfony 4和am,设置nelmio/cors-bundle
,请运行命令composer req nelmio/cors-bundle
。并配置nelmio_cors.yml
,即添加allow_headers
。
nelmio_cors:
defaults:
allow_credentials: false
allow_origin: []
allow_headers: ['Content-Type']
allow_methods: []
expose_headers: []
max_age: 0
hosts: []
origin_regex: false
forced_allow_origin_value: ~
paths:
'^/api/':
allow_origin: ['*']
allow_headers: ['X-Custom-Auth', 'Content-Type']
allow_methods: ['POST', 'PUT', 'GET', 'DELETE']
max_age: 3600
'^/':
origin_regex: true
allow_origin: ['^http://localhost:[0-9]+']
allow_headers: ['X-Custom-Auth', 'Content-Type']
allow_methods: ['POST', 'PUT', 'GET', 'DELETE']
max_age: 3600
hosts: ['^api\.']