Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/5.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
Apache Laravel5中子域之间的CORS问题_Apache_.htaccess_Laravel 5_Cors - Fatal编程技术网

Apache Laravel5中子域之间的CORS问题

Apache Laravel5中子域之间的CORS问题,apache,.htaccess,laravel-5,cors,Apache,.htaccess,Laravel 5,Cors,我在Laravel5上构建了一个API,在开发环境中localhost上出现了CORS问题,所以我开发了这个中间件并在API的路由上使用,解决了这个问题: class Cors { /** * Handle an incoming request. * * @param \Illuminate\Http\Request $request * @param \Closure $next * @return mixed */

我在Laravel5上构建了一个API,在开发环境中localhost上出现了CORS问题,所以我开发了这个中间件并在API的路由上使用,解决了这个问题:

class Cors
{
    /**
     * Handle an incoming request.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Closure  $next
     * @return mixed
     */
    public function handle($request, Closure $next)
    {
        $response = $next($request)
        ->header('Access-Control-Allow-Origin', 'http://zekrishna.com')
        ->header('Access-Control-Allow-Methods', 'GET, POST, PUT, DELETE, OPTIONS');

        return  $response;
    }
}
当我销毁应用程序时,CORS问题再次出现。我使用同一台服务器托管API和前端,其中前端位于服务器的根目录上,API位于子域上

这是我在
public/
上的.htaccess:

...

<IfModule mod_headers.c>
Header add Access-Control-Allow-Origin "*"
Header add Access-Control-Allow-Headers "origin, x-requested-with, content-type"
Header add Access-Control-Allow-Methods "PUT, GET, POST, DELETE, OPTIONS"
</IfModule>
我正在使用jQuery
$.ajax
方法调用API

const API_TOKEN = '9BuDRcUxUbl9jW2FDnMxToijR8plDsT4xkVRg7m3AThJHJWXqsNSOGy94x1B';
const API = 'http://api.zekrishna.com/api';

...

$.ajax({
    url: API + '/agenda/',
    type: 'GET',
    crossDomain: true,
    data: {api_token: API_TOKEN}
})
.done(setConcerts)

我可以通过HTTP GET访问它,并且似乎发送了两个头。您的htaccess正在设置一个,中间件也是

无法加载XMLHttpRequest。“Access Control Allow Origin”标头包含多个值“,*”,但只允许一个值。因此,不允许“源”访问


有没有可能您的本地环境htaccess没有启动?

我可以通过HTTP GET访问它,并且似乎发送了两个标头。您的htaccess正在设置一个,中间件也是

无法加载XMLHttpRequest。“Access Control Allow Origin”标头包含多个值“,*”,但只允许一个值。因此,不允许“源”访问


是否可能您的本地环境htaccess没有启动?

我删除了请求中的最后一个斜杠,然后工作了! 服务器正在重定向,不允许这些请求

之前:

$.ajax({
    url: API + '/agenda/',
    ...
})
然后:


我删除了我请求的最后一个斜杠并开始工作! 服务器正在重定向,不允许这些请求

之前:

$.ajax({
    url: API + '/agenda/',
    ...
})
然后:


我删除了.htaccess规则并保留了中间件,但问题仍在继续…我删除了.htaccess规则并保留了中间件,但问题仍在继续。。。
$.ajax({
    url: API + '/agenda',
    ...
})