JavaScript >> Javascript 文檔 >  >> Vue.js

Fetch 不會發送或接收任何 Cookie

Fetch 不會發送或接收任何 cookie 🍪

今天我想我已經修復了一個困擾我很久的錯誤。

“在我的機器上工作”的嚴重案例

我有一些使用外部 API 的代碼,一旦經過身份驗證,它就會在稍後進行另一個 API 調用以獲取最終用戶最近的圖像。

這很好用……

除了一些用戶報告他們一旦登錄就看不到他們的圖像。

但是,在很長一段時間內,我無法重新創建它。它適用於我的機器,適用於 macOS、Windows 和 Linux,適用於 safari、chrome 和 firefox。它適用於 iPhone 6s。

因此,我添加了日誌記錄,然後添加了更多日誌記錄。我什至註冊了一個試用 Browserstack 帳戶,以嘗試盡可能多的不同瀏覽器和設備,但仍然無法重現問題。

然後最終在測試其他東西時,我設法使用運行 iOS 11.2 的 iPhone 6S 使用 Apple 的 iOS 模擬器重新創建了該錯誤。

當涉及到錯誤修復代碼時,能夠重新創建錯誤確實是成功的一半。

因此,有了一些斷點和對正在發生的事情有了更清晰的了解,我最終能夠修復錯誤並將一個可以工作的應用程序投入生產。

錯誤?

好吧,我不是 100% 確定如何解釋它,但前端有一些 JavaScript 代碼使用 fetch API 調用 ApiController 來檢查會話變量並根據該值將數據返回給前端客戶端。

對於大多數瀏覽器和我的開發環境,以下代碼足以進行調用並獲取正確的數據:

fetch(this.apiUrl)

但是,對於某些瀏覽器,我需要修改 fetch API 調用以指定 cookie 和憑據也必須與請求一起發送。

這是執行此操作的代碼,也是我提交的修復程序。

fetch(this.apiUrl, {
        method: 'GET',
        credentials: 'include'
      })

fetch 的文檔確實在一定程度上指出了這個問題

為什麼這只需要某些瀏覽器我不確定,但我的修復似乎有效。

成功🎉


Tutorial JavaScript 教程
  1. 📦 將 Node.js 代碼捆綁到單個可執行二進製文件中

  2. 如果是使用javascript的月份的最後一天,如何驗證日期?

  3. 在 JavaScript 中克隆對象時要注意! 👯‍♀️

  4. react-kindness:可定制的 React 屏幕指南

  5. 如何在不打開瀏覽器的情況下運行 npm start 以在 Linux 上進行 React 開發

  6. 使用 TypeScript 和 ES 模塊發布 Node 模塊

  7. 什麼是 JSON,它為什麼有用?

  1. Node.js v18.x 版本中有什麼新功能?

  2. Storybook JS 簡介

  3. 帶有 jQuery 1.4 和 CSS3 的甜蜜 AJAX 選項卡

  4. toTimeString(),一個理解毫秒值的 JavaScript 函數

  5. RxJS 簡介

  6. 如何確定是否調用了突變?

  7. JavaScript:bind() 的意義何在?

  1. 使用 React + Web3 構建 Aavegotchi DApp

  2. JavaScript 面試問題 #17:兩個空數組之和

  3. 教程:編寫一個可重用的 React Native 組件並使用 Jest 對其進行測試。

  4. 使用 JavaScript 創建 Twitter 機器人