服務(wù)器A請(qǐng)求服務(wù)器B的接口,那么一般會(huì)出現(xiàn)跨域問(wèn)題。
XMLHttpRequest cannot load http://api.console.vms3.com/api/user. No "Access-Control-Allow-Origin" header is present on the requested resource. Origin "http://localhost:8080" istherefore not allowed access.
意思就是服務(wù)器響應(yīng)不允許跨域訪問(wèn).
那我們就需要讓服務(wù)器支持跨域訪問(wèn), 也就是在響應(yīng)頭部中添加
"Access-Control-Allow-Origin: *"第一步: 創(chuàng)建中間件
創(chuàng)建 `app/Http/Middleware/AccessControlAllowOrigin.php` middleware 把 "Access-Control-Allow-Origin: *" 寫(xiě)入頭部. app/Http/Middleware/AccessControlAllowOrigin.php 第二步: 注冊(cè)路由注冊(cè)這個(gè) middleware 到 kernel 中.
第三步: 設(shè)置中間件保護(hù)接口
分別在 protected $middleware 數(shù)組中和 protected $routeMiddleware 數(shù)組中
添加我們剛才創(chuàng)建的那個(gè)文件class名, 使用 cors 這個(gè)別名.然后在設(shè)置它保護(hù) api , 就是$middlewareGroups["api"] 的數(shù)組中添加它的別名, 本文中是 "cors"
app/Http/Kernel.php[ AppHttpMiddlewareEncryptCookies::class, IlluminateCookieMiddlewareAddQueuedCookiesToResponse::class, IlluminateSessionMiddlewareStartSession::class, // IlluminateSessionMiddlewareAuthenticateSession::class, IlluminateViewMiddlewareShareErrorsFromSession::class, AppHttpMiddlewareVerifyCsrfToken::class, IlluminateRoutingMiddlewareSubstituteBindings::class, ], "api" => [ "throttle:60,1", "bindings", "cors" ], ]; /** * The application"s route middleware. * * These middleware may be assigned to groups or used individually. * * @var array */ protected $routeMiddleware = [ "auth" => IlluminateAuthMiddlewareAuthenticate::class, "auth.basic" => IlluminateAuthMiddlewareAuthenticateWithBasicAuth::class, "bindings" => IlluminateRoutingMiddlewareSubstituteBindings::class, "can" => IlluminateAuthMiddlewareAuthorize::class, "guest" => AppHttpMiddlewareRedirectIfAuthenticated::class, "throttle" => IlluminateRoutingMiddlewareThrottleRequests::class, "cors" => AppHttpMiddlewareAccessControlAllowOrigin::class, ]; }第四步:在路由中添加路由Route::middleware("cors")->group(function () { // });
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/29563.html
摘要:合適和夠用是最完美的追求。比如從頁(yè)面去請(qǐng)求的資源。它允許瀏覽器向跨源服務(wù)器,發(fā)出請(qǐng)求,從而克服了只能同源使用的限制。定義在中的路由都是無(wú)狀態(tài)的,并且會(huì)應(yīng)用中間件組。 關(guān)于作者 程序開(kāi)發(fā)人員,不拘泥于語(yǔ)言與技術(shù),目前主要從事PHP和前端開(kāi)發(fā),使用Laravel和VueJs,App端使用Apicloud混合式開(kāi)發(fā)。合適和夠用是最完美的追求。 個(gè)人網(wǎng)站:http://www.linganm...
摘要:合適和夠用是最完美的追求。比如從頁(yè)面去請(qǐng)求的資源。它允許瀏覽器向跨源服務(wù)器,發(fā)出請(qǐng)求,從而克服了只能同源使用的限制。定義在中的路由都是無(wú)狀態(tài)的,并且會(huì)應(yīng)用中間件組。 關(guān)于作者 程序開(kāi)發(fā)人員,不拘泥于語(yǔ)言與技術(shù),目前主要從事PHP和前端開(kāi)發(fā),使用Laravel和VueJs,App端使用Apicloud混合式開(kāi)發(fā)。合適和夠用是最完美的追求。 個(gè)人網(wǎng)站:http://www.linganm...
摘要:合適和夠用是最完美的追求。比如從頁(yè)面去請(qǐng)求的資源。它允許瀏覽器向跨源服務(wù)器,發(fā)出請(qǐng)求,從而克服了只能同源使用的限制。定義在中的路由都是無(wú)狀態(tài)的,并且會(huì)應(yīng)用中間件組。 關(guān)于作者 程序開(kāi)發(fā)人員,不拘泥于語(yǔ)言與技術(shù),目前主要從事PHP和前端開(kāi)發(fā),使用Laravel和VueJs,App端使用Apicloud混合式開(kāi)發(fā)。合適和夠用是最完美的追求。 個(gè)人網(wǎng)站:http://www.linganm...
摘要:跨域的請(qǐng)求出于安全性的原因,瀏覽器會(huì)限制中的跨域請(qǐng)求。跨源共享標(biāo)準(zhǔn)需要瀏覽器和服務(wù)端共同配合才能完成,目前瀏覽器廠商已經(jīng)可以將請(qǐng)求部分自動(dòng)完成,所以跨源資源訪問(wèn)的重點(diǎn)還是在于服務(wù)器端。指明預(yù)請(qǐng)求或者跨域請(qǐng)求的來(lái)源。 跨域的請(qǐng)求 出于安全性的原因,瀏覽器會(huì)限制 Script 中的跨域請(qǐng)求。由于 XMLHttpRequest 遵循同源策略,所有使用 XMLHttpRequest 構(gòu)造 HT...
閱讀 2961·2021-11-24 09:39
閱讀 2871·2021-09-29 09:34
閱讀 3567·2021-09-24 10:23
閱讀 1747·2021-09-22 15:41
閱讀 1703·2019-08-30 15:55
閱讀 3518·2019-08-30 13:58
閱讀 2626·2019-08-30 13:11
閱讀 1673·2019-08-29 12:31