在Laravel中不允许"Access-Control-Allow-Origin"标题

use*_*641 2 php nginx laravel angularjs

我怎么能让laravel No 'Access-Control-Allow-Origin' header is present on the requested?因为当我尝试$http.get()使用angular.js的某个url时,我总是会得到关于它的错误.

use*_*641 6

哦,明白了.我只需要在我的应用程序上过滤之前添加.

filters.php

App::before(function($request)
{
    header('Access-Control-Allow-Origin: *');
    header('Access-Control-Allow-Methods: GET, POST, OPTIONS');
    header('Access-Control-Allow-Headers: Origin, Content-Type, Accept, Authorization, X-Requested-With');
    header('Access-Control-Allow-Credentials: true');
});
Run Code Online (Sandbox Code Playgroud)

  • 您正在做的是允许跨源请求共享(CORS),这意味着任何地方的任何人都可以与您的API进行交互.只有当你的角度脚本在另一个域上时才应该这样做,在这种情况下,将第一个头更改为"Access-Control-Allow-Origin:<DOMAIN WHERE ANGULAR IS>`.如果所有内容都存储在同一个域中,如果您在apache中创建虚拟主机,例如`crowdproject.local`,您的脚本可以调用`crowdproject.local/api`,您不需要设置这些标头. (2认同)