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

81 篇文章 0 订阅
33 篇文章 0 订阅

今天有个朋友问到了laravel中ajax的跨域问题,之前看过不少,不过项目中从来没用过,基本都忘记了...

为了解决问题,找了找资料,百度上到处是,这里记录2篇,感觉还不错:
	http://www.cnblogs.com/dojo-lzz/p/4265637.html
	http://blog.csdn.net/leedaning/article/details/53787008
这里罗列出文章提到的几点:
	1.jsonp	// 只支持get
	2.使用代理,不涉及服务器的话,想了想,通过请求我们本域名下的后端,再通过后端去调用其他域名,中间看怎么处理,应该也可以解决!
	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
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值