vue中axios请求request header field content-type is not allowed by access-con
时间: 2023-05-10 18:01:34 浏览: 139
VUE项目axios请求头更改Content-Type操作
5星 · 资源好评率100%
这个错误通常是由于请求中的Content-Type请求头部被阻止所致。解决此问题的最常见方法是确保您的请求头中的Content-Type值正确,并且您的服务端允许此值。
在使用Vue中的axios时,可以在请求中设置Content-Type头部,例如:
axios.post('/api/post', {
firstName: 'Fred',
lastName: 'Flintstone'
}, {
headers: {
'Content-Type': 'application/json'
}
})
在这个示例中,我们在请求中明确设置了Content-Type头部的值为application/json。
如果您已经设置了正确的Content-Type头部,并且仍然遇到此错误,则可能是由于您的服务端设置了防止跨站点请求伪造(CSRF)的保护机制。在这种情况下,您需要在请求中包含一个名为_csrf的令牌,以便确认请求的来源。在Vue.js中,您可以使用以下方式来包含CSRF令牌:
axios.defaults.headers.common['X-CSRF-TOKEN'] = document.querySelector('meta[name="csrf-token"]').getAttribute('content');
确保在包含CSRF令牌之前,您已经在页面中设置了元标记,例如:
<meta name="csrf-token" content="{{ csrf_token() }}">
总之,该错误通常出现在请求的Content-Type头部格式不正确,或者由于CSRF保护机制被触发而导致阻止请求。通过设置正确的Content-Type头部,或者包含适当的CSRF令牌,您可以轻松解决此问题。
阅读全文