介绍
这篇文章给大家分享的是有关Laravel API允许跨域访问的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。
服务器一个请求服务器B的接口,那么一般会出现跨域问题。全解跨域请求处理办法引用>XMLHttpRequest cannot load http://api.console.vms3.com/api/user. No & # 39; Access-Control-Allow-Origin& # 39;, header is 阐述;提醒,requested 资源只Origin & # 39; http://localhost: 8080 & # 39;, istherefore not allowed 访问。意思就是服务器响应不允许跨域访问。
那我们就需要让服务器支持跨域访问,也就是在响应头部中添加
“& # 39; Access-Control-Allow-Origin: * & # 39; “
第一步:创建中间件
创建,‘app/Http/中间件/AccessControlAllowOrigin.php’, middleware 把,& # 39;Access-Control-Allow-Origin:, * & # 39;,写入头部。 应用程序/Http/中间件/AccessControlAllowOrigin.php php和lt; ? namespace 应用\ Http \中间件; use 关闭; use 阐明\ \外墙\身份验证的支持; class AccessControlAllowOrigin { ,,,/* * ,,,, ,,,,*,Handle an incoming 请求。 ,,,, ,,,,*,@param , \照亮\ Http \ Request 美元请求 ,,,,*,@param \ Closure 美元,下一个 ,,,,*,@return 混合 ,,,*/,,,public function 处理(请求,美元,Closure 下一美元) ,,,{ ,,,,,,,头(& # 39;Access-Control-Allow-Origin:, * & # 39;); ,,,,,,,头(“Access-Control-Allow-Credentials: true"); ,,,,,,,头(“Access-Control-Allow-Methods: *“); ,,,,,,,头(“Access-Control-Allow-Headers: - type, Access-Token"); ,,,,,,,头(“Access-Control-Expose-Headers: *“); ,,,,,,,return 下一美元($请求); ,,,} }第二步:注册路由
注册这个中间件<代码> 代码>到<代码>内核代码>中。
分别在<代码>保护美元中间件,> 代码数组中和<代码>保护美元routeMiddleware> 代码数组中
添加我们刚才创建的那个文件<代码> 代码>名类,使用<代码>歌珥代码>这个别名。第三步:设置中间件保护接口
然后在设置它保护api,就是<代码> middlewareGroups美元[& # 39;api # 39;]> 代码的数组中添加它的别名,本文中是<代码> & # 39;歌珥# 39;代码>
<代码>应用程序/Http/内核。php代码>,php lt; ? namespace 应用\ Http; use 照亮\ \ Http基础\ Kernel  as HttpKernel; class Kernel  extends HttpKernel { ,,,/* * ,,,,*,从而应用# 39;s global HTTP middleware 堆栈。 ,,,, ,,,,*,These middleware 断开连接;run during every request 用your 应用程序。 ,,,, ,,,,*,@var 数组 ,,,*/,,,protected middleware 美元;=,( ,,,,,,,\照亮\ \ Http \基础中间件\ CheckForMaintenanceMode::类, ,,,,,,,\照亮\ \ Http \基础中间件\ ValidatePostSize::类, ,,,,,,,中间件\ App \ Http \ \ TrimStrings::类, ,,,,,,,\照亮\ \ Http \基础中间件\ ConvertEmptyStringsToNull::类, ,,,,,,,中间件\ App \ Http \ \ AccessControlAllowOrigin::类, ,,,); ,,,/* * ,,,,*,从而应用# 39;s route middleware 组织。 ,,,, ,,,,*,@var 数组 ,,,*/,,,protected middlewareGroups 美元;=,( ,,,,,,,& # 39;网络# 39;,=,gt;, ( ,,,,,,,,,,,中间件\ App \ Http \ \ EncryptCookies::类, ,,,,,,,,,,,\照亮\饼干\中间件\ AddQueuedCookiesToResponse::类, ,,,,,,,,,,,\中间件照亮\会议\ \ StartSession::类, ,,,,,,,,,,,//,中间件\照亮\会议\ \ AuthenticateSession::类, ,,,,,,,,,,,\照亮\ \中间件\ ShareErrorsFromSession::类, null null null null null null null null null null null null null null null null null null null null null null null null null null null null null nullLaravel API允许跨域访问的示例分析