ajax請求無法跨域,在前端開發中是個常見問題,它的產生原因是,在瀏覽器接收服務端返回資料時,會檢查該資料是否和當前發起請求的**在同一網域名稱下。若不是,則會丟棄該資料,並返回乙個跨域錯誤。
在ajax請求中,遵循如下流程:
網頁提交乙個ajax請求到瀏覽器,瀏覽器將請求發至伺服器,伺服器接收到請求後,返回響應資料給瀏覽器(伺服器通常不會對網域名稱進行區分),瀏覽器接收到響應資料時,檢測返回資料的網域名稱是否和當前頁面網域名稱相同,若相同則將資料返回給網頁,不同則丟棄資料。
既然跨域問題的產生原因在於瀏覽器的限制,那麼網頁端在請求時無法主動規避,此時就需要服務端進行處理。
服務端只需要在響應ajax請求時,在請求頭中加入乙個access-control-allow-origin屬性,並設定為*(表示全部網域名稱)或者當前網域名稱就可以讓瀏覽器不再進行限制。
以下示例可以通過/lesson18/ajax.html檔案發起ajax請求測試。
示例**:/lesson18/server.js})server.listen(8080)當然在實際專案中,不可以簡單地設定res.setheader(『access-control-allow-origin』, 『*』),而是要通過req.headers.origin判斷發起請求的網域名稱是否合法,再設定access-control-allow-origin屬性,以免出現安全問題。
nodeJS教程(一) nodejs安裝
二 安裝必備模組 安裝完之後開啟嘗試執行程式,可能會提示缺少的模組,比如 error cannot find module mime 表示缺少mime模組 error cannot find module socket.io 表示缺少socket.io模組 這個時候根據提示,安裝必備的modules...
nodejs菜鳥教程
唉,仔細算下來和nodejs打交道7個半月了,說實話,真的不會nodejs,也不會什麼koa,erxpress,js基礎知識,es7基礎語法,真的啥都不會啊.所以說還是得多學習。關於nodejs直譯器 nodejs 服務端js執行環境 基於google的v8引擎 就是乙個直譯器 nodejs就是乙個...
nodejs安裝教程
安裝node.s 2 安裝 我的安裝目錄 d nodejs 3 安裝完成後,直接通過dos命令檢視 輸入 node v 檢視版本號 然後輸入 npm,檢視是否安裝成功。4 改變原有的環境變數 4.1首先配置npm的全域性模組的存放路徑 cache的路徑,此處我選擇放在 d nodejs 執行dos,...