React Native的Cookie紀錄
React Native的Cookie紀錄
Last edited 2022-10-24
type
Post
status
Published
date
Oct 28, 2020
slug
react-native-cookie
summary
最近在使用React Native開發跨平台APP使用Fetch時…
tags
開發
category
技術分享
icon
password

內容

最近在使用React Native開發跨平台APP使用Fetch時,遇到Server API會記錄的Cookie,導致如果直接使用Fetch會產生非預期的結果。
例如有一個註冊API如下:
fetch('https://api.example.com/v1/', { method: 'POST', headers: { Accept: 'application/json', 'Content-Type': 'application/json' }, body: JSON.stringify({ userName: 'david', password: 'password' }) });
預設會送出cookie導致Server API傳回已經註冊過的問題。
但是可以加上credentials: 'omit'後,就可以不會送出Cookie了。
結果改成:
fetch('https://api.example.com/v1/', { method: 'POST', credentials: 'omit', headers: { Accept: 'application/json', 'Content-Type': 'application/json' }, body: JSON.stringify({ userName: 'david', password: 'password' }) });
沒想到React Native預設會像瀏覽器一樣的行為。

測試

參考在stackoverflow上的問題

react-native fetch() cookie persist
在2015年11月的React Native 0.16版本,Android及iOS的fetch都會設定credential
  • 開發
  • 測試文章測試文章