Php 如何解决这个问题';http://localhost:8080' 已被CORS策略阻止:对飞行前请求的响应不';在vueJS中无法通过访问控制?

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 };

CORS策略已阻止从源站“”访问“”处的XMLHttpRequest:对飞行前请求的响应未通过访问控制检查:
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返回
访问控制允许源代码
标题的片段。