在送出 Ajax 時,將 cookie 值一並送出 若 Ajax 送出的網址為相同 domain Ajax 會將瀏覽器的 Cookie 放在 header 的 Cookie 欄位以字串 "key1=value1; key2=value2; key3=value3" 的形式送出 若 Ajax 送出的網址為相不同 domain 預設行為不送 Cooke 這個 header。 若這種情況還是要送 cookie,則需要瀏覽器和伺服器互相配合 瀏覽器: 送 Ajax 時需要加入 withCredentials: true ,以使用 Axios 為例: axios.get('/someCorssOriginUrlIWantToSendCookie', { headers:{ withCredentials: true } }); 伺服器: 回應瀏覽器的 preflight request 時需要特別在 header 注意兩個設定: Access-Control-Allow-Origin 'http://some.domainname' 這種 CORS 情境不能為 *(wildcard),需要指定特定的 domain,且需要和 preflight request 相同。 Access-Control-Allow-Credentials true 註:這邊只針對送出 cookie 時要特別調整的兩個 header 的設定方式,由於 CROS 時,瀏覽器送出 Ajax 的 request 將格式依情況而定。例如 Ajax content-type 為 application/json,伺服器在回應 preflight request 時需要在 header 中加入 Access-Control-Allow-Headers Content-Type,表示伺服器接受這種 content-type 的 request,這部分不在這裡討論。 做完上面的設定,瀏覽器送出 Ajax 時,即會在 header 中加入 Cookie 欄位,值如同同 domain 的形式一樣。 參考網址: MDN
編譯 SASS 語法 | JavaScript 語法偵錯 | 單元測試 本文目的為介紹以 Gulp 打造 React Redux Router ES6 的開發及產品環境,以下將會說明所需的套件及設定方式,依建制步驟拆成五個篇章,關於 React Redux ES6 Jest 等相關知識不在此篇筆記介紹範圍。 第一篇 - 編譯 ES6 JSX 語法 | CSS JS 自動載入 | 本地端伺服器 編譯 JSX 及 ES6 語法 | Babel Browserify HTML 自動載入 CSS JS | Bower Wiredep Gulp Inject 建立開發用伺服器及自動重新載入 | Gulp Connect 第二篇 - 編譯 SASS | 語法偵錯 | 單元測試 編譯 SASS 語法 | Gulp Sass JavaScript 語法偵錯 | ESLint 單元測試 | Jest 第三篇 - 環境變數 | 程式碼壓縮 | 檔案壓縮 | 輸出隨機檔名 轉換開發及產品環境變數 | Browerify Dotenv Envify JavaScript SASS 程式碼壓縮 | Gulp Sass Uglify 產品環境下打包所有 JS CSS 檔案 | Gulp Useref 輸出的 CSS JS 檔案附加不重複的檔名 | Gulp Rev 第四篇 - 彙整 Gulp task 彙整 Gulp task - development 彙整 Gulp task - production 第五篇 - 導入 Redux React-Router 架構 導入 Redux Router 架構 | React Redux Router 前三篇會依序介紹每個功能及建置方式,第四篇會將零碎的 task 打包成一連串的動作,做成開發及產品環境的指令集,第五篇會把 react-redux 和 react-router 基本架構導入。 基本需求:已安裝 NodeJS 及了解如何使用 npm ,並知道如何使用 Gul