Php 如何解决这个问题';http://localhost:8080' 已被CORS策略阻止:对飞行前请求的响应不';在vueJS中无法通过访问控制?
CORS策略已阻止从源站“”访问“”处的XMLHttpRequest:对飞行前请求的响应未通过访问控制检查:Php 如何解决这个问题';http://localhost:8080' 已被CORS策略阻止:对飞行前请求的响应不';在vueJS中无法通过访问控制?,php,web-services,vue.js,vuejs2,Php,Web Services,Vue.js,Vuejs2,CORS策略已阻止从源站“”访问“”处的XMLHttpRequest:对飞行前请求的响应未通过访问控制检查:Access control Allow origin标头包含多个值*,*,但只允许一个值 我使用$http调用Web服务。 这是我的请求代码 export default { data() { return { name: "", number: "", email: "", submitdata: false };
Access control Allow origin
标头包含多个值*,*
,但只允许一个值
我使用$http调用Web服务。
这是我的请求代码
export default {
data() {
return {
name: "",
number: "",
email: "",
submitdata: false
};
},
methods: {
handleSubmit: function() {
var data1 = {
title: this.name,
body: this.number + this.email
};
this.$http
.post("http://localhost/webserivcedemo/state.php", {
data: data1
})
.then(function(data) {
console.log(data);
this.submitdata = true;
});
}
}
};
您需要创建新文件
vue.config.js
,并需要添加访问所需的URL,如下所示
module.exports = {
devServer: {
proxy: 'endpoint',
}
}
解决方案1:请像
http://127.0.0.1:8080
是否运行twist?
如果扭转,则关闭一个。然后检查
解决方案2:有时额外的/
API端点会出现问题。移除额外的/
,然后检查
谢谢这不是
$http
调用的问题,而是服务器返回错误的头的问题。它必须是*
,而不是*,*
。我尝试使用axios,但不工作。我的webservice和vue项目都在本地服务器中。我使用nginx。它们都在本地服务器上并不重要,如果它们使用不同的端口号,那么CORS适用。要使CORS正常工作,您必须从服务器返回一个合适的访问控制允许来源
标题。如错误消息所示,您当前返回的值*,*
,无效。这可能是因为头*
被添加到两个不同的位置,并且有东西将它们组合成*,*
。避免CORS的一种解决方法是通过一台服务器代理所有内容。在问题中添加一段php代码,负责发送答案。特别是,我们对片段设置标题感兴趣。@Ashruti返回访问控制允许源代码标题的片段。