laravel(包含lumen)框架中的跨域函数实例

  1. 设置允许所有的网站使用普通ajax的方式的跨域解决
    // 获取支持跨域的js返回
    public function tokenKy(){
        $data = [
            'a'=>1,
            'b'=>2,
            'c'=>3,
        ];
        return response()
            ->json($data)
            ->header('Access-Control-Allow-Origin', '*')
            ;
    }
  1. 使用函数自行构建的jsonp的回调形式的跨域解决
// 获取jquery的callback的跨域处理的js
public function tokenCb2(Request $request){
    $callback = $request['callback'] ?? 'callback';
 
    // 返回的数据
    $data = [
        'a'=>1,
        'b'=>2,
        'c'=>3,
    ];
 
    $result = $callback."(".json_encode($data).")";
 
    return response($result)
        ->header('Content-Type', 'application/javascript;charset=utf-8');
}
  1. 使用laravel(或者lumen)的内置函数的跨域解决[推荐]
// 使用lumen支持的跨域返回值
    public function tokenCb(Request $request){
        $callback = $request['callback'] ?? 'callback';
        // 返回的数据
        $data = [
            'a'=>1,
            'b'=>2,
            'c'=>3,
        ];
        return response()
            ->json($data)
            ->setCallback($callback);
    }

在这里推荐使用第三种方法,第二种方法为你展示了,跨域解决的原理

发布了155 篇原创文章 · 获赞 0 · 访问量 860

猜你喜欢

转载自blog.csdn.net/u013866352/article/details/105412555