流明中的POST API(Cors问题)

时间:2019-08-20 12:53:52

标签: reactjs lumen-5.4

我正在用Lumen编写API。使用axios在ReactJS中所有的GET API都可以正常工作。但是,POST API无法正常工作。我通过创建中间件并在web.php路由文件中使用它们在Lumen中启用了cors。但是,仍然出现相同的错误。我无法调试来自客户端或服务器端的问题。

<?php
/**
* Location: /app/Http/Middleware
*/
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){
        $headers = [
            'Access-Control-Allow-Origin'      => '*',
            'Access-Control-Allow-Methods'     => 'POST, GET, OPTIONS, PUT, DELETE',
            'Access-Control-Allow-Credentials' => 'true',
            'Access-Control-Max-Age'           => '86400',
            'Access-Control-Allow-Headers'     => 'Content-Type, Authorization, X-Requested-With'
        ];
        if ($request->isMethod('OPTIONS'))
        {
            return response()->json('{"method":"OPTIONS"}', 200, $headers);
        }
        $response = $next($request);
        foreach($headers as $key => $value)
        {
            $response->header($key, $value);
        }
        return $response;
    }
}

Register the middleware in bootstrap/app.php

$app->routeMiddleware([
    'auth' => App\Http\Middleware\Authenticate::class,
    'localization' => \App\Http\Middleware\Localization::class,
    'cors' => App\Http\Middleware\Cors::class
]);

Finally, I put the requests in middleware

$router->group(['middleware' => ['cors']], function () use ($router) {
    # Login API's
    $router->post('/login', 'LoginController@index');
    $router->post('/register', 'UserController@register');
    $router->get('/user/{id}', ['middleware' => 'auth','uses' => 'UserController@get_user']);
});

But, the above solution is not working.

----------------错误---------------------     从源“ http://localhost:8000/login”对“ http://localhost:3000”处XMLHttpRequest的访问已被CORS策略阻止:对预检请求的响应未通过访问控制检查:无“ Access-Control-Allow-Origin”标头存在于请求的资源上。     0.chunk.js:10190 POST http://localhost:8000/login net :: ERR_FAILED

0 个答案:

没有答案