ajax跨域,以及在laravel中实现跨域

来源:互联网 发布:java 解析swf 编辑:程序博客网 时间:2024/06/07 19:48

今天有个朋友问到了laravel中ajax的跨域问题,之前看过不少,不过项目中从来没用过,基本都忘记了...为了解决问题,找了找资料,百度上到处是,这里记录2篇,感觉还不错:http://www.cnblogs.com/dojo-lzz/p/4265637.htmlhttp://blog.csdn.net/leedaning/article/details/53787008这里罗列出文章提到的几点:1.jsonp// 只支持get2.使用代理,不涉及服务器的话,想了想,通过请求我们本域名下的后端,再通过后端去调用其他域名,中间看怎么处理,应该也可以解决!3.CORS// 跨源资源共享协议,这个基本是最好的!但需要服务器配置一些响应头。------- 既然要跨域获取数据,对方服务器应该已经支持这些了吧。接下来,再说laravel中实现,找了找:1.还有个专门的laravel包:laravel-cors// 官方写的是 5.3+2.自己写个中间件:laravel的中间件分2种:前置和后置,不了解的,参考文档:http://laravelacademy.org/post/2803.html所以,我们直接在 '全局中间件' ,添加 '后置中间件' ,让所有连接都支持跨域,也可放在自定义中间件,自己设置什么时候调用。中间件的代码,很简单:   public function handle($request, Closure $next)  {    $response = $next($request);        $response->header('Access-Control-Allow-Origin', config('app.allow'));        $response->header('Access-Control-Allow-Headers', 'Origin, Content-Type, Cookie, Accept');        $response->header('Access-Control-Allow-Methods', 'GET, POST, PATCH, PUT, OPTIONS');        $response->header('Access-Control-Allow-Credentials', 'true');        return $response;}

阅读全文
0 0
原创粉丝点击