laravel(包含lumen)框架中的跨域函数实例
- 设置允许所有的网站使用普通ajax的方式的跨域解决
// 获取支持跨域的js返回
public function tokenKy(){
$data = [
'a'=>1,
'b'=>2,
'c'=>3,
];
return response()
->json($data)
->header('Access-Control-Allow-Origin', '*');
}
- 使用函数自行构建的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');
}
- 使用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);
}
在这里推荐使用第三种方法,第二种方法为你展示了,跨域解决的原理