500 Ошибка после кроссдоменного POST запроса

599
06 января 2017, 12:34

На локалке на бекэнде стоит laravel 5.2 (домен http://api.angular.ng/), в .htaccess файле прописал:

Header set Access-Control-Allow-Origin "*"
Header set Access-Control-Allow-Methods "GET, POST, PUT, DELETE"
Header set Access-Control-Allow-Headers "Origin, Content-Type, X-Auth-Token"

На фронте стоит angular2. POST-ом передаю запрос на бекэнд с хедерами:

let headers = new Headers({ 'Content-Type': 'application/json' });

В итоге получаю 500 ошибку:

General:

Request URL:http://api.angular.ng/register
Request Method:POST
Status Code:500 Internal Server Error
Remote Address:127.0.0.1:80

Response Headers:

Access-Control-Allow-Headers:Origin, Content-Type, X-Auth-Token
Access-Control-Allow-Methods:GET, POST, PUT, DELETE
Access-Control-Allow-Origin:*
Cache-Control:no-cache, private
Connection:close
Content-Type:text/html; charset=UTF-8
Date:Wed, 04 Jan 2017 08:18:23 GMT
Server:Apache/2.4.23 (Unix) PHP/5.6.27
Set-Cookie:laravel_session=eyJpdiI6IkNZbFhUVkZjVU9pYmR2RjAxQXNpcUE9PSIsInZhbHVlIjoiNUFnYTU1TkhRXC9HNTZWbXAwOHpPNE0xYzNxcjloTnlZUnNyM0NZTmN3Y0hUY3czTlwvdXJWT1pIZnNIUGpFVEJUNHA2SlZyYktYT3VPUERJVERkQkJhQT09IiwibWFjIjoiOGFmMzRmMjY2ZWQzMDhlNjc2MDQwYzQ4NTAxM2I3Mjg3MWMzYWJhZDQzM2I5M2JiZTY3NDE1ZmZkYWU1MDAwNSJ9; expires=Wed, 04-Jan-2017 10:18:23 GMT; Max-Age=7200; path=/; httponly
Transfer-Encoding:chunked
X-Powered-By:PHP/5.6.27

Request Headers:

Accept:*/*
Accept-Encoding:gzip, deflate
Accept-Language:ru-RU,ru;q=0.8,en-US;q=0.6,en;q=0.4
Connection:keep-alive
Content-Length:15
Content-Type:application/json
Host:api.angular.ng
Origin:http://localhost:3000
Referer:http://localhost:3000/login

Подскажите, пожалуйста, кто встречался с подобным?

Answer 1

Я обычно делаю такое middleware

<?php
namespace App\Http\Middleware;
use Closure;
class Cors
{
    /**
     * Handle an incoming request.
     *
     * @param  \Illuminate\Http\Request $request
     * @param  \Closure $next
     * @return mixed
     */
    public function handle($request, Closure $next)
    {
        $domains = [];
        if (isset($request->server()['HTTP_ORIGIN'])) {
            $origin = $request->server()['HTTP_ORIGIN'];
            if (in_array($origin, $domains)) {
                header('Access-Control-Allow-Origin: '.$origin);
            }
            header('Access-Control-Allow-Headers: Origin, Content-Type, Authorization');
        }
        return $next($request);
    }
}

И нужно еще вставить сюда: App\Http\Kernal.php;

protected $routeMiddleware = [
    ...,
    'cors' => \App\Http\Middleware\Cors::class,
]

А использовать так:

Route::get('/user', function (Request $request) {
    return $request->user();
})->middleware('cors');
READ ALSO
Проблема с созданием платежного модуля [требует правки]

Проблема с созданием платежного модуля [требует правки]

Есть проблема которую я не могу решить уже несколько дней, поскольку недостаточно хорошо знаю PHP

431
Помогите в создании меню плиз!

Помогите в создании меню плиз!

не получается создать тег li с уникальным классом для ul sub (подменю) ,а выводит li одинаковый который прописан для всех, может кто то помочь? как...

394
Как привязать оплату liqpay к wordpress плагину restrict content pro

Как привязать оплату liqpay к wordpress плагину restrict content pro

Как привязать оплату к restrict content pro те что там есть по умолчанию не подходят! нужно интегрировать Liqpay c Wordpress а именно к restrict content pro

586