【发布时间】:2017-10-20 19:44:41
【问题描述】:
我正在创建一个 Laravel Web 应用程序,它将充当 Angular2 应用程序的 API,现在我将 Laravel 应用程序托管在 Windows 上的 WAMP 服务器上
laravel 在 localhost:8000 和 Angular 在 localhost:4200
我已经为 CORS 创建了这样的中间件:
class Cors {
public function handle($request, Closure $next)
{
return $next($request)
->header('Access-Control-Allow-Origin', '*')
->header('Access-Control-Allow-Methods', 'GET, POST, PUT, DELETE, OPTIONS')
->header('Access-Control-Allow-Headers', 'X-Requested-With, Content-Type, X-Token-Auth, Authorization');
}
}
当调用我的 api url 时,我得到了这个:
XMLHttpRequest 无法加载 http://localhost:8000/api/myapi。对预检请求的响应未通过访问控制检查:请求的资源上不存在“Access-Control-Allow-Origin”标头。 Origin 'http://localhost:4200' 因此不允许访问
我很确定这与中间件无关,因为当我 ng build Angular 应用程序时,API 可以工作,而在 localhost:4200 上服务时,它不能与 ng serve 一起工作
有什么想法吗? 谢谢
【问题讨论】: