Laravel API允许跨域访问的示例分析

  介绍

这篇文章给大家分享的是有关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   null

Laravel API允许跨域访问的示例分析