Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/279.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Access Control Allow Origin仅适用于chrome_Javascript_Php_Request_Cors_Axios - Fatal编程技术网

Javascript Access Control Allow Origin仅适用于chrome

Javascript Access Control Allow Origin仅适用于chrome,javascript,php,request,cors,axios,Javascript,Php,Request,Cors,Axios,我正在使用axios从VueJS前端发出请求。CORS请求执行两个调用,第一个调用是OPTIONS,第二个调用请求的soPOST 它可以在Chrome上完美运行,但如果我使用Safari或Firefox,我只有选项请求。他们不执行POST请求 PHP(我正在使用Phalcon PHP): VueJS: let config = { headers: { 'Access-Control-Allow-Origin' : '*', 'Content-Type': '

我正在使用axios从VueJS前端发出请求。CORS请求执行两个调用,第一个调用是
OPTIONS
,第二个调用请求的so
POST

它可以在Chrome上完美运行,但如果我使用Safari或Firefox,我只有
选项
请求。他们不执行
POST
请求

PHP(我正在使用Phalcon PHP):

VueJS:

  let config = {
    headers: {
      'Access-Control-Allow-Origin' : '*',
      'Content-Type': 'application/x-www-form-urlencoded'
    }
  };

  axios.post('http://example.com/charge', {
    firstname: this.firstname,
    lastname: this.lastname,
    amount: this.finalAmount * 100,
    source: result.token.id
  },config)
    .then((response) => {
      this.loading = false;
      this.paid = true;
      this.snackbarSuccess = true;
    })
    .catch((error) => {
      this.loading = false;
      this.snackbarError = true;
    });
Firefox响应标题:

Access-Control-Allow-Credentials    
1
Access-Control-Allow-Headers    
*
Access-Control-Allow-Methods    
GET, POST, PATCH, PUT, DELETE, OPTIONS
Access-Control-Allow-Origin 
*
Access-Control-Max-Age  
86400
Connection  
keep-alive
Content-Length  
2
Content-Type    
text/html; charset=UTF-8
Date    
Wed, 30 Jan 2019 16:40:13 GMT
Server  
nginx
Status  
200 OK

Request headers (515 B) 
Accept  
text/html,application/xhtml+xm…ml;q=0.9,image/webp,*/*;q=0.8
Accept-Encoding 
gzip, deflate
Accept-Language 
en-US,en;q=0.5
Access-Control-Request-Headers  
access-control-allow-origin
Access-Control-Request-Method   
POST
Connection  
keep-alive
Host    
example.com
Origin  
http://localhost:8080
Referer 
http://localhost:8080/payment
User-Agent  
Mozilla/5.0 (Macintosh; Intel …) Gecko/20100101 Firefox/65.0

我不明白为什么它在其他浏览器上不起作用,你能帮我吗?

查看Safari中的网络面板,然后告诉我们选项请求的结果是什么?@RandyCasburn我更新了我的答案可能会删除一些可选内容以简化代码。例如,从技术上讲,如果值为“application/x-www-form-urlencoded”,则“content type”不需要“allow headers”。也不确定您是否需要JS代码中的“Access Control Allow Origin”:“*”。@Stefan我已删除,但没有任何更改从JavaScript中删除所有标题,您不需要任何标题。您发送的不是URL编码的表单数据,而是将转换为JSON的对象。这是axios的默认设置。
Access-Control-Allow-Credentials    
1
Access-Control-Allow-Headers    
*
Access-Control-Allow-Methods    
GET, POST, PATCH, PUT, DELETE, OPTIONS
Access-Control-Allow-Origin 
*
Access-Control-Max-Age  
86400
Connection  
keep-alive
Content-Length  
2
Content-Type    
text/html; charset=UTF-8
Date    
Wed, 30 Jan 2019 16:40:13 GMT
Server  
nginx
Status  
200 OK

Request headers (515 B) 
Accept  
text/html,application/xhtml+xm…ml;q=0.9,image/webp,*/*;q=0.8
Accept-Encoding 
gzip, deflate
Accept-Language 
en-US,en;q=0.5
Access-Control-Request-Headers  
access-control-allow-origin
Access-Control-Request-Method   
POST
Connection  
keep-alive
Host    
example.com
Origin  
http://localhost:8080
Referer 
http://localhost:8080/payment
User-Agent  
Mozilla/5.0 (Macintosh; Intel …) Gecko/20100101 Firefox/65.0