欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

NodeJS配置CORS實(shí)現(xiàn)過(guò)程詳解

 更新時(shí)間:2020年12月02日 14:45:35   作者:王者歸來(lái)!  
這篇文章主要介紹了NodeJS配置CORS實(shí)現(xiàn)過(guò)程詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下

跨域問(wèn)題主要在header上下功夫

首先提供一個(gè)w3c的header定義 http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html

再提供一個(gè)網(wǎng)友提供的header詳解 http://kb.cnblogs.com/page/92320/

這兩個(gè)有助于幫助大家理解header的類型和作用, 但是遺憾的是跨域相關(guān)的兩個(gè)header屬性我都沒(méi)有找到相關(guān)的定義,

下面直接告訴大家 1是Access-Control-Allow-Origin 允許的域 2是Access-Control-Allow-Headers 允許的header類型

第一項(xiàng)可以直接設(shè)為* 表示任意 但是第二項(xiàng)不能這樣寫(xiě),在chrome中測(cè)試跨域發(fā)現(xiàn)報(bào)錯(cuò), 最終的代碼看起來(lái)是這個(gè)樣子:

app.all('*', function(req, res, next) {
  res.header("Access-Control-Allow-Origin", "*");
  res.header("Access-Control-Allow-Headers", "Content-Type,Content-Length, Authorization, Accept,X-Requested-With");
  res.header("Access-Control-Allow-Methods","PUT,POST,GET,DELETE,OPTIONS");
  res.header("X-Powered-By",' 3.2.1')
  if(req.method=="OPTIONS") res.send(200);/*讓options請(qǐng)求快速返回*/
  else next();
});

另外有cors模塊可以用

CORS需要瀏覽器和服務(wù)器同時(shí)支持。目前,所有瀏覽器都支持該功能,IE瀏覽器不能低于IE10。

整個(gè)CORS通信過(guò)程,都是瀏覽器自動(dòng)完成,不需要用戶參與。對(duì)于開(kāi)發(fā)者來(lái)說(shuō),CORS通信與同源的AJAX通信沒(méi)有差別,代碼完全一樣。瀏覽器一旦發(fā)現(xiàn)AJAX請(qǐng)求跨源,就會(huì)自動(dòng)添加一些附加的頭信息,有時(shí)還會(huì)多出一次附加的請(qǐng)求,但用戶不會(huì)有感覺(jué)。

因此,實(shí)現(xiàn)CORS通信的關(guān)鍵是服務(wù)器。只要服務(wù)器實(shí)現(xiàn)了CORS接口,就可以跨源通信。

瀏覽器將CORS請(qǐng)求分成兩類:簡(jiǎn)單請(qǐng)求(simple request)和非簡(jiǎn)單請(qǐng)求(not-so-simple request)。

只要同時(shí)滿足以下兩大條件,就屬于簡(jiǎn)單請(qǐng)求。

(1) 請(qǐng)求方法是以下三種方法之一:

  • HEAD
  • GET
  • POST

(2)HTTP的頭信息不超出以下幾種字段:

  • Accept
  • Accept-Language
  • Content-Language
  • Last-Event-ID

Content-Type:只限于三個(gè)值application/x-www-form-urlencoded、multipart/form-data、text/plain

這是為了兼容表單(form),因?yàn)闅v史上表單一直可以發(fā)出跨域請(qǐng)求。AJAX 的跨域設(shè)計(jì)就是,只要表單可以發(fā),AJAX 就可以直接發(fā)。

凡是不同時(shí)滿足上面兩個(gè)條件,就屬于非簡(jiǎn)單請(qǐng)求。

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 手把手教你使用TypeScript開(kāi)發(fā)Node.js應(yīng)用

    手把手教你使用TypeScript開(kāi)發(fā)Node.js應(yīng)用

    為了減少代碼編寫(xiě)過(guò)程中出現(xiàn)的錯(cuò)誤,以及更好的維護(hù)你的項(xiàng)目,本文將手把手教你配置一個(gè)簡(jiǎn)單的開(kāi)發(fā)環(huán)境來(lái)編寫(xiě)Node.js的應(yīng)用程序,感興趣的小伙伴們可以參考一下
    2019-05-05
  • 詳解webpack打包nodejs項(xiàng)目(前端代碼)

    詳解webpack打包nodejs項(xiàng)目(前端代碼)

    這篇文章主要介紹了webpack打包nodejs項(xiàng)目(前端代碼),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-09-09
  • Nodejs實(shí)現(xiàn)用戶注冊(cè)功能

    Nodejs實(shí)現(xiàn)用戶注冊(cè)功能

    本文通過(guò)實(shí)例代碼給大家介紹了Nodejs實(shí)現(xiàn)用戶注冊(cè)功能,代碼簡(jiǎn)單易懂,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-04-04
  • nodejs開(kāi)發(fā)環(huán)境配置與使用

    nodejs開(kāi)發(fā)環(huán)境配置與使用

    經(jīng)過(guò)幾個(gè)星期的nodejs學(xué)習(xí),從開(kāi)始的小白到現(xiàn)在漸漸得熟悉,走過(guò)來(lái)也才算明白,現(xiàn)在已經(jīng)入門(mén)也掌握了相關(guān)的學(xué)習(xí)方法,今天開(kāi)始記錄下自己學(xué)習(xí)的過(guò)程,以便日后查看。
    2014-11-11
  • Nodejs極簡(jiǎn)入門(mén)教程(二):定時(shí)器

    Nodejs極簡(jiǎn)入門(mén)教程(二):定時(shí)器

    這篇文章主要介紹了Nodejs極簡(jiǎn)入門(mén)教程(二):定時(shí)器,本文講解了setTimeout、setInterval、setImmediate及process.nextTick等內(nèi)容,需要的朋友可以參考下
    2014-10-10
  • Node.js中Process.nextTick()和Process.setImmediate()的區(qū)別

    Node.js中Process.nextTick()和Process.setImmediate()的區(qū)別

    這篇文章介紹了Node.js中Process.nextTick()和Process.setImmediate()的區(qū)別,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-07-07
  • 用node.js寫(xiě)一個(gè)jenkins發(fā)版腳本

    用node.js寫(xiě)一個(gè)jenkins發(fā)版腳本

    這篇文章主要介紹了用node.js寫(xiě)一個(gè)jenkins發(fā)版腳本,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-05-05
  • 2014年最火的Node.JS后端框架推薦

    2014年最火的Node.JS后端框架推薦

    用nodejs開(kāi)發(fā)web應(yīng)用,用哪個(gè)框架好?express?還是其他什么?今天小編就來(lái)給大家推薦一下今年最好用的幾款Node.js后端框架
    2014-10-10
  • node模塊機(jī)制與異步處理詳解

    node模塊機(jī)制與異步處理詳解

    這篇文章主要介紹了node模塊機(jī)制與異步處理詳解的相關(guān)資料,需要的朋友可以參考下
    2016-03-03
  • Node.js  REPL (交互式解釋器)實(shí)例詳解

    Node.js REPL (交互式解釋器)實(shí)例詳解

    這篇文章主要介紹了Node.js REPL (交互式解釋器)實(shí)例詳解的相關(guān)資料,Node.js REPL(Read Eval Print Loop:交互式解釋器) 表示一個(gè)電腦的環(huán)境,類似 Window 系統(tǒng)的終端,我們可以在終端中輸入命令,并接收系統(tǒng)的響應(yīng),需要的朋友可以參考下
    2017-08-08

最新評(píng)論