axios中已经设置了headers: { 'Access-Control-Allow-Origin': '*', 'Access-Control-Allow-Methods': 'POST, GET, OPTIONS, PUT, DELETE', 'Access-Control-Allow-Headers': 'Content-Type, X-Auth-Token, Origin, Authorization' },还需要axios.defaults.headers.common['X-Requested-With'] = 'XMLHttpRequest'吗
时间: 2024-01-15 09:04:12 浏览: 491
`axios.defaults.headers.common['X-Requested-With'] = 'XMLHttpRequest'`这行代码其实是设置`'X-Requested-With'`请求头,该请求头用于标识当前请求是由XMLHttpRequest发起的。而`Access-Control-Allow-Origin`、`Access-Control-Allow-Methods`、`Access-Control-Allow-Headers`这三个请求头是用于CORS(跨域资源共享)的,用于解决跨域问题。
这两个设置是不同的,并且也不冲突。`Access-Control-Allow-Origin`、`Access-Control-Allow-Methods`、`Access-Control-Allow-Headers`这三个请求头是由服务器端设置的,用于告诉浏览器哪些跨域请求是允许的。而`'X-Requested-With'`请求头是由客户端设置的,用于标识当前请求是由XMLHttpRequest发起的,方便服务器端判断请求类型。
因此,在使用CORS时需要设置`Access-Control-Allow-Origin`、`Access-Control-Allow-Methods`、`Access-Control-Allow-Headers`这三个请求头,而设置`'X-Requested-With'`请求头是可选的,但是在一些框架中可能会使用到这个请求头,为了保险起见,有些人会将其设置为默认值。如果你不确定是否需要设置`'X-Requested-With'`请求头,可以先尝试不设置,如果出现问题再进行调整。
阅读全文