Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/meteor/3.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
CORS策略已阻止从源站访问XMLHttpRequest(Vue.JS应用程序调用Lumen应用程序)_Vue.js_Cors_Lumen - Fatal编程技术网

CORS策略已阻止从源站访问XMLHttpRequest(Vue.JS应用程序调用Lumen应用程序)

CORS策略已阻止从源站访问XMLHttpRequest(Vue.JS应用程序调用Lumen应用程序),vue.js,cors,lumen,Vue.js,Cors,Lumen,我正在使用一个Vue.JS应用程序,该应用程序正在调用使用Lumen构建的API。 每当Vue.JS应用程序调用Lumen API时,我总是会遇到以下错误 下面是一个用于内腔CORS的中间件 <?php namespace App\Http\Middleware; use Closure; class CorsMiddleware { /** * Handle an incoming request. * * @param \Illumina

我正在使用一个Vue.JS应用程序,该应用程序正在调用使用Lumen构建的API。 每当Vue.JS应用程序调用Lumen API时,我总是会遇到以下错误

下面是一个用于内腔CORS的中间件

<?php

namespace App\Http\Middleware;

use Closure;

class CorsMiddleware
{
    /**
     * Handle an incoming request.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Closure  $next
     * @return mixed
     */
    public function handle($request, Closure $next)
    {
        //Intercepts OPTIONS requests
        if($request->isMethod('OPTIONS')) {
            $response = response('', 200);
        } else {
            // Pass the request to the next middleware
            $response = $next($request);
        }

        // Adds headers to the response
        $response->header('Access-Control-Allow-Methods', 'HEAD, GET, POST, PUT, PATCH, DELETE');
        $response->header('Access-Control-Allow-Headers', $request->header('Access-Control-Request-Headers'));
        $response->header('Access-Control-Allow-Origin', '*');

        // Sends it
        return $response;
    }
}

添加后立即解决

header('Access-Control-Allow-Headers: *'); 
而不是

header('Access-Control-Allow-Headers: Origin, Content-Type, X-Auth-Token'); 

在CORS中间件中。

似乎原点设置为
*,*
,但它应该只有一个星号。是否在其他地方修改了响应标题?您也不应该在生产中使用星号,除非您希望允许每个网站调用您的API。@ssc-hrep3您好,兄弟,很抱歉没有理解您的意思,您建议采取什么措施?请转到Chrome DevTools中的
网络
选项卡,然后单击请求,在选项卡
标题
上,您将看到
响应标题
。标题
访问控制允许原点
应为单个值:
*
https://yourdomain.com
。这个值似乎在后端的某个地方被设置为
*,*
。可能是在
.htaccess
文件中以及在PHP中设置标头会导致此逗号分隔的标头无效。您需要修复此问题,然后它应该可以工作。从.htaccess文件中删除“头集访问控制允许源”*”。您已经在PHP代码中设置了Access Control Allow Origin头。因此,当您还在.htaccess文件中进行设置时,返回的响应最终会有两个Access-Control-Allow-Origin标头-都具有值“*”。现在在添加标头(“Access-Control-Allow-headers:*”)后解决了这一问题;而不是标头('Access-Control-Allow-Headers:Origin,Content-Type,X-Auth-Token');在CORS中间件中。
header('Access-Control-Allow-Headers: Origin, Content-Type, X-Auth-Token');