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

跨域中間件Headers 不支持星號(hào)嗎?

問題描述

由于業(yè)務(wù)需要,要在headers中添加aesKey字段,結(jié)果出現(xiàn)了跨域錯(cuò)誤:

Request header field aeskey is not allowed by Access-Control-Allow-Headers in preflight response.

但我的跨域中間件也都是正常的,于是嘗試把*改成具體的字段就正常了。

'Access-Control-Allow-Headers' => '*',  // 報(bào)跨域錯(cuò)誤!
'Access-Control-Allow-Headers' => 'Content-Type,aesKey',  // 正常

難道Access-Control-Allow-Headers 不支持*號(hào)嗎?
請(qǐng)大佬指點(diǎn)迷津。

1861 2 3
2個(gè)回答

keytehu

網(wǎng)上搜下 “Access-Control-Allow-Headers: * 跨域不生效”就知道了,并不是所有瀏覽器都支持Access-Control-Allow-Headers: * ,需要將 Access-Control-Allow-Headers設(shè)置為具體值。這個(gè)屬于瀏覽器兼容問題。

  • 暫無評(píng)論
ichynul

可以從請(qǐng)求頭里面拿到,原樣返回就行。

以下是tp5的寫法,僅供參考,不要直接復(fù)制粘貼,要改成webman寫法。

關(guān)鍵點(diǎn):

header("Access-Control-Allow-Headers: {$_SERVER['HTTP_ACCESS_CONTROL_REQUEST_HEADERS']}");

public function run()
    {
        $moduleList = ['api', 'order'];
        $module = request()->module();
        if ( in_array($module,$moduleList)) {

            header("Access-Control-Allow-Origin: *");
            header('Access-Control-Allow-Credentials: true');
            header('Access-Control-Max-Age: 86400');

            request()->filter('trim,strip_tags,htmlspecialchars');

            if ($_SERVER['REQUEST_METHOD'] == 'OPTIONS') {
                if (isset($_SERVER['HTTP_ACCESS_CONTROL_REQUEST_HEADERS'])) {
                    header("Access-Control-Allow-Headers: {$_SERVER['HTTP_ACCESS_CONTROL_REQUEST_HEADERS']}");
                }
                if (isset($_SERVER['HTTP_ACCESS_CONTROL_REQUEST_METHOD'])) {
                    header("Access-Control-Allow-Methods: GET, POST, OPTIONS");
                }
                exit('ok');
            }
        }
    }
  • 暫無評(píng)論
年代過于久遠(yuǎn),無法發(fā)表回答
??