Node.js設定允許跨域的方法

2020-12-25 18:00:13
如何設定允許跨域?下面本篇文章就來給大家介紹一下設定方法。有一定的參考價值,有需要的朋友可以參考一下,希望對大家有所幫助。

相關推薦:《》

設定允許所有域名跨域:

app.all("*",function(req,res,next){
    //設定允許跨域的域名,*代表允許任意域名跨域
    res.header("Access-Control-Allow-Origin","*");
    //允許的header型別
    res.header("Access-Control-Allow-Headers","content-type");
    //跨域允許的請求方式 
    res.header("Access-Control-Allow-Methods","DELETE,PUT,POST,GET,OPTIONS");
    if (req.method.toLowerCase() == 'options')
        res.send(200);  //讓options嘗試請求快速結束
    else
        next();
}

設定允許指定域名「http://www.zhangpeiyue.com」跨域:

app.all("*",function(req,res,next){
    //設定允許跨域的域名,*代表允許任意域名跨域
    res.header("Access-Control-Allow-Origin","http://www.zhangpeiyue.com");
    //允許的header型別
    res.header("Access-Control-Allow-Headers","content-type");
    //跨域允許的請求方式 
    res.header("Access-Control-Allow-Methods","DELETE,PUT,POST,GET,OPTIONS");
    if (req.method.toLowerCase() == 'options')
        res.send(200);  //讓options嘗試請求快速結束
    else
        next();
}

設定允許多個域名跨域:

app.all("*",function(req,res,next){
    if( req.headers.origin.toLowerCase() == "http://www.zhangpeiyue.com"
        || req.headers.origin.toLowerCase() =="http://127.0.0.1" ) {
        //設定允許跨域的域名,*代表允許任意域名跨域
        res.header("Access-Control-Allow-Origin", req.headers.origin);
    }
    //允許的header型別
    res.header("Access-Control-Allow-Headers", "content-type");
    //跨域允許的請求方式 
    res.header("Access-Control-Allow-Methods", "DELETE,PUT,POST,GET,OPTIONS");
    if (req.method.toLowerCase() == 'options')
        res.send(200);  //讓options嘗試請求快速結束
    else
        next();    
}

如果允許的域名較多,可以將允許跨域的域名放到陣列當中:

app.all("*",function(req,res,next){
    var orginList=[
        "http://www.zhangpeiyue.com",
        "http://www.alibaba.com",
        "http://www.qq.com",
        "http://www.baidu.com"
    ]
    if(orginList.includes(req.headers.origin.toLowerCase())){
        //設定允許跨域的域名,*代表允許任意域名跨域
        res.header("Access-Control-Allow-Origin",req.headers.origin);
    }
    //允許的header型別
    res.header("Access-Control-Allow-Headers", "content-type");
    //跨域允許的請求方式
    res.header("Access-Control-Allow-Methods", "DELETE,PUT,POST,GET,OPTIONS");
    if (req.method.toLowerCase() == 'options')
        res.send(200);  //讓options嘗試請求快速結束
    else
        next();
}

—————END—————

更多程式設計相關知識,請存取:!!

以上就是Node.js設定允許跨域的方法的詳細內容,更多請關注TW511.COM其它相關文章!