国产+高潮+在线,国产 av 仑乱内谢,www国产亚洲精品久久,51国产偷自视频区视频,成人午夜精品网站在线观看

OPTIONS跨域問題

abinx

問題描述

瀏覽器跨域會發(fā)生兩個請求 一個OPTIONS預(yù)請求 如果設(shè)置的只有post路由 路由里面找不到OPTIONS路由就會直接返回404 或者回退到Route::fallback() 不會調(diào)用跨域中間件 造成跨域失敗
截圖

截圖

為此你搜索到了哪些方案及不適用的原因

經(jīng)實驗:設(shè)置any路由能正??缬?我路由都是根據(jù)不同的method實現(xiàn)不同的功能 沒辦法都用any路由 這個怎么處理???

2866 2 2
2個回答

keytehu

http://m.wtbis.cn/doc/webman/middleware.html#%E7%A4%BA%E4%BE%8B%EF%BC%9A%E8%B7%A8%E5%9F%9F%E8%AF%B7%E6%B1%82%E4%B8%AD%E9%97%B4%E4%BB%B6

文檔寫了
跨域可能會產(chǎn)生OPTIONS請求,我們不想OPTIONS請求進入到控制器,所以我們?yōu)镺PTIONS請求直接返回了一個空的響應(yīng)(response(''))實現(xiàn)請求攔截。
如果你的接口需要設(shè)置路由,請使用Route::any(..) 或者 Route::add(['POST', 'OPTIONS'], ..)設(shè)置。

  • abinx 2023-02-13

    已解決 加一行就行了 Route::options('[{path: .+}]', fn() => response('', 204));

markHxz

是不是配置了fallback
fallback不走中間件
你可以在fallback里面配置跨域返回

Route::fallback(function (Request $request) {
    $response = strtoupper($request->method()) === 'OPTIONS' ? response('', 204) : response('', 404);
    $response->withHeaders([
        'Access-Control-Allow-Credentials' => 'true',
        'Access-Control-Allow-Origin' => "*",
        'Access-Control-Allow-Methods' => '*',
        'Access-Control-Allow-Headers' => '*',
    ]);
    return $response;
});
年代過于久遠,無法發(fā)表回答
??