Когда я вызываю сервер без заголовков, его работа и сервер возвращают json:
this.http.get(url)
но когда я добавляю заголовок:
var headers = new Headers({'x-id': '1'});
this.http.get(url, {'headers': headers})
браузер возвращает ошибку:
XMLHttpRequest cannot load http://domain/api/v1/. Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:3000' is therefore not allowed access.
Я также попытался добавить Origin
заголовок - ошибка браузера: Refused to set unsafe header "Origin"
И Access-Control-Allow-Origin
header - без эффекта
На сервере (Laravel) я создал промежуточное ПО Cors.php
:
<?php
namespace App\Http\Middleware;
use Closure;
class Cors {
public function handle($request, Closure $next)
{
return $next($request)
->header('Access-Control-Allow-Origin', 'http://localhost:3000')
->header('Access-Control-Allow-Methods', 'GET, POST, PUT, DELETE, OPTIONS')
->header('Access-Control-Allow-Headers', 'x-id');
}
}
Я новичок в angular2 и запросах CORS, не знаю, что делать.
- Angular: 2.0.0-beta.0
- Laravel: 5.0
- Браузер: Google Chrome