Laravel 5.4 设置跨域资源请求CORS

在目录app\Http\Middleware\下新建CORS.php文件,内容如下:

<?php
namespace App\Http\Middleware;

use Closure;

class CORS {

    /**
     * 处理请求.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Closure  $next
     * @return mixed
     */
    public function handle($request, Closure $next) {

        //设置允许来源头信息:Access-COntrol-Allow-Origin
        header("Access-Control-Allow-Origin: *");

        // 设置允许请求的方法
        $headers = [
            'Access-Control-Allow-Methods' => 'POST, GET, OPTIONS, PUT, DELETE',
            'Access-Control-Allow-Headers' => 'Content-Type, X-Auth-Token, Origin, Authorization'
        ];

        if ($request->getMethod() == "OPTIONS") {
            // 对于预请求返回200
            return \Response::make('OK', 200, $headers);
        }

        $response = $next($request);
        foreach ($headers as $key => $value)
            $response->header($key, $value);
        return $response;
    }
}

修改文件app\Http\Kernel.php:

1、在数组$middleware添加以下代码:

\App\Http\Middleware\CORS::class

2、在数组$routeMiddleware添加以下代码

'cors' => \App\Http\Middleware\CORS::class

代码里设置头信息Access-Control-Allow-Origin为*,是表示允许所有域名的请求,建议在此处修改为指定的域名。

版权声明:著作权归作者所有。

相关推荐

GPU架构学习资源

这里收藏了gpu学习的网站,pdf等等资源:http://courses.cms.caltech.edu/cs179/http://www.amd.com/Documents/GCN_Architecture_whitepaper.pdfhttps://community.arm.com/graphics/b/bloghttp://cdn.imgtec.com/sdk-documentation/

Django响应http请求返回JSON数据

首先使用字典结构存放数据,例如返回错误信息:import json from django.http import HttpResponse response_data = {} response_data['result'] = 'error' response_data['message'] =&nb

Spring MVC配置CORS

Spring Framework 从4.2开始支持配置CORS。Spring MVC支持CORS的范围包括:方法级别配置CORS全局配置CORS方法级别配置CORS使用注解@CrossOrgin可以对@RequestMapping注解的方法设置CORS。@RestController @RequestMapping("/users") public