第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

laravel 跨域,預(yù)檢請(qǐng)求未通過(guò)

laravel 跨域,預(yù)檢請(qǐng)求未通過(guò)

PHP
縹緲止盈 2019-03-18 18:03:14
前端發(fā)送請(qǐng)求,請(qǐng)求頭帶上authorization的時(shí)候,沒(méi)辦法接收到,報(bào)錯(cuò)顯示貌似是跨域錯(cuò)誤。檢測(cè)登錄沒(méi)有問(wèn)題,我分析了下,登錄屬于簡(jiǎn)單請(qǐng)求,未進(jìn)行進(jìn)行預(yù)檢請(qǐng)求所以沒(méi)什么問(wèn)題。求思路... cors中間件 public function handle($request, Closure $next) { $response = $next($request); $response->header('Access-Control-Allow-Origin', '*'); $response->header('Access-Control-Allow-Headers', 'X-Requested-With,Origin, Content-Type, Cookie, Accept,Authorization'); $response->header('Access-Control-Allow-Methods', 'GET, POST, PATCH, PUT, OPTIONS'); $response->header('Access-Control-Allow-Credentials', 'true'); $response->header('withCredentials', 'true'); return $response; } 報(bào)錯(cuò)詳細(xì):
查看完整描述

2 回答

?
梵蒂岡之花

TA貢獻(xiàn)1900條經(jīng)驗(yàn) 獲得超5個(gè)贊

問(wèn)題已解決,原因是:

dingo/api 組件影響了原本的請(qǐng)求響應(yīng)

解決思路:

  • 從響應(yīng)來(lái)看,返回的狀態(tài)碼是200,說(shuō)明預(yù)檢請(qǐng)求已經(jīng)到達(dá)了服務(wù)器,只不過(guò)被服務(wù)器斷否認(rèn)掉了

  • 這里我饒了很大個(gè)彎子,以為預(yù)檢請(qǐng)求被否就意味著后端配置錯(cuò)誤,所以一直在檢查前后端的配置,但是都沒(méi)起作用

  • 吃個(gè)飯回來(lái)覺(jué)得還是從這個(gè)option請(qǐng)求入手,得先讓他通過(guò),嘗試著單獨(dú)寫(xiě)一個(gè)路由去匹配這個(gè)請(qǐng)求,并返回相應(yīng)的請(qǐng)求頭

Route::options('api/user/12',function(){
????return?response('ok')
?????????????????????->header('Access-Control-Allow-Methods','POST,?GET,?OPTIONS,?PUT,?????????DELETE')
?????????????????????->header('Access-Control-Allow-Headers','Content-Type,?X-Auth-Token,?Origin');
})->middleware('crouss.request');
  • 單獨(dú)請(qǐng)求居然成功了。難道是自定義的中間除了問(wèn)題?然后我單獨(dú)在中間去做響應(yīng)處理,結(jié)果沒(méi)有得到響應(yīng)

  • 這說(shuō)明在我這個(gè)路由中間件之前肯定發(fā)生了些什么,那就肯定只有dingo/api了

  • 說(shuō)來(lái)也巧,在看別人怎么解決laravel cros的時(shí)候,發(fā)現(xiàn)他們?cè)谑褂靡粋€(gè)barryvdh/laravel-cors的包,我原本想著如果我自定義的中間件不能用,只能借用它的啦。

  • 在分析這個(gè)包的同時(shí),我發(fā)現(xiàn)有使用者配置的時(shí)候提出一個(gè)坑,需要將這個(gè)包作為中間件寫(xiě)在dinggo/api的配置文件中,恍然大悟

答案:在dingo/api配置文件config/api.php中加入中間件

` 'middleware' => [

????'crouss.request'?=>?\App\Http\Middleware\EnableCrossRequestMiddleware::class,
??],`

===========================================================

查看完整回答
反對(duì) 回復(fù) 2019-03-18
?
青春有我

TA貢獻(xiàn)1784條經(jīng)驗(yàn) 獲得超8個(gè)贊

我之前也遇到過(guò),google了很多。
自定義middleware是沒(méi)辦法解決的,你要把他寫(xiě)在routes/api.php或routes/web.php的頭部才可以。

查看完整回答
反對(duì) 回復(fù) 2019-03-18
?
慕容708150

TA貢獻(xiàn)1831條經(jīng)驗(yàn) 獲得超4個(gè)贊

查看laravel-cors的包的源碼就發(fā)現(xiàn)了,哪里有$response->header方法?是$response->headers->set吧

查看完整回答
反對(duì) 回復(fù) 2019-03-18
  • 2 回答
  • 0 關(guān)注
  • 621 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)