在这种情况下,问题 CORS 策略适用于其他资源
Problem CORS Policy in this case while it works for other resources
我用 Laravel 构建了我的 API。在前端,我使用 Vuejs 和 Nuxtjs。
CORS 策略策略包已安装并可与我的所有其他资源一起使用。
对于我的功能之一,它不起作用。出现以下错误,我不明白为什么:
Access to XMLHttpRequest at 'http://myapp.test/api/bilan/storestatus' from origin 'http://localhost:3000' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.
11:22:48.855
POST http://myapp.test/api/bilan/storestatus net::ERR_FAILED
我这样做了:
<el-switch v-model="status.status" @change="storeStatus">
</el-switch>
data() {
status: { status: 0 }
}
async storeStatus() {
try {
await axios.post('bilan/storestatus', this.status)
.then( () => {
this.$message({
message: this.$t('status.updated'),
type: 'success'
})
})
.catch(error => {
console.log(error);
})
} catch (e) {
console.log(e)
}
},
你能解释一下为什么会出现这个错误吗?
尤其是我的应用程序的其余部分一切正常。
您还应该在服务器中启用 CORS。然后加
axios.defaults.headers.post['Access-Control-Allow-Origin'] = '*';
或者是服务器不接受选项请求的问题。您将在 https://www.html5rocks.com/en/tutorials/cors/
中了解有关 CORS 的更多详细信息
您的请求是否存在内部错误? CORS 策略包的一个问题是 Laravel 的默认错误处理程序将创建新响应 headers。如果请求 运行 通过错误处理程序,它将删除 CORS headers。因此,如果您的请求出现内部错误,您不会收到 500 错误,您会收到 CORS 错误,因为响应 headers 被覆盖。
我用 Laravel 构建了我的 API。在前端,我使用 Vuejs 和 Nuxtjs。
CORS 策略策略包已安装并可与我的所有其他资源一起使用。
对于我的功能之一,它不起作用。出现以下错误,我不明白为什么:
Access to XMLHttpRequest at 'http://myapp.test/api/bilan/storestatus' from origin 'http://localhost:3000' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.
11:22:48.855
POST http://myapp.test/api/bilan/storestatus net::ERR_FAILED
我这样做了:
<el-switch v-model="status.status" @change="storeStatus">
</el-switch>
data() {
status: { status: 0 }
}
async storeStatus() {
try {
await axios.post('bilan/storestatus', this.status)
.then( () => {
this.$message({
message: this.$t('status.updated'),
type: 'success'
})
})
.catch(error => {
console.log(error);
})
} catch (e) {
console.log(e)
}
},
你能解释一下为什么会出现这个错误吗?
尤其是我的应用程序的其余部分一切正常。
您还应该在服务器中启用 CORS。然后加
axios.defaults.headers.post['Access-Control-Allow-Origin'] = '*';
或者是服务器不接受选项请求的问题。您将在 https://www.html5rocks.com/en/tutorials/cors/
中了解有关 CORS 的更多详细信息您的请求是否存在内部错误? CORS 策略包的一个问题是 Laravel 的默认错误处理程序将创建新响应 headers。如果请求 运行 通过错误处理程序,它将删除 CORS headers。因此,如果您的请求出现内部错误,您不会收到 500 错误,您会收到 CORS 错误,因为响应 headers 被覆盖。