eggjs的post跨域報(bào)405 method not allowed錯(cuò)誤

近期用uni-app開發(fā)的應(yīng)用,在小程序中沒有任何問(wèn)題,包括調(diào)試、上線,但是在google chrome調(diào)試網(wǎng)頁(yè)版時(shí)就出現(xiàn)接口報(bào)405 method not allowed錯(cuò)誤。
按照網(wǎng)上的方法在nginx跨域請(qǐng)求cors配置如下:

location / {
        add_header         'Access-Control-Allow-Origin' 'https://api.xxxx.com';
        add_header         "Access-Control-Allow-Credentials" "true";
        add_header         "Access-Control-Allow-Headers" "x-requested-with,content-type";
        proxy_pass         http://localhost:8080;
        proxy_set_header   Host             $host;
        proxy_set_header   X-Real-IP        $remote_addr;
        proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
}

主要是添加了三個(gè)用于控制CORS的頭信息:

Access-Control-Allow-Origin:允許的來(lái)源
Access-Control-Allow-Credentials:設(shè)置為true,允許ajax異步請(qǐng)求帶cookie信息
Access-Control-Allow-Headers:設(shè)置為x-requested-with,content-type,允許ajax余部請(qǐng)求。

也沒有任何作用,報(bào)錯(cuò)依舊。
后面在想是不是后端的nodejs配置問(wèn)題。
將本地調(diào)試網(wǎng)址加入白名單

//關(guān)閉csrf
config.security = {
    csrf: {
        enable: false,
        ignoreJSON: true
    },
    // 白名單
    domainWhiteList: [ 'http://localhost:8080' ]
};

沒有任何作用,報(bào)錯(cuò)依舊。

后面查到資料

config.cors = {
    allowMethods: 'GET,HEAD,PUT,POST,DELETE,PATCH,OPTIONS',
};

#根據(jù)情況我只開啟下面的請(qǐng)求方式
config.cors = {
    allowMethods: 'GET,POST,OPTIONS',
};

也沒有作用。

在文章下面有網(wǎng)友評(píng)論說(shuō),請(qǐng)確定是否開啟了 egg-cors 插件。

exports.cors = {
    enable: true,
    package: 'egg-cors',
};

如果提示沒有安裝,請(qǐng)安裝一下。

cnpm i --save egg-cors

哈哈,起作用了。原來(lái)是沒有加載插件,太好了,一直困惑的問(wèn)題終于解決。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容