React native 用'取数;如果没有匹配项';:&引用;etag“;在React本机应用程序中标头始终返回200

React native 用'取数;如果没有匹配项';:&引用;etag“;在React本机应用程序中标头始终返回200,react-native,fetch,etag,React Native,Fetch,Etag,我在react原生应用程序中遇到了一个非常奇怪的问题,其中使用etag的简单获取总是返回200,而不是预期的304: const response = await fetch(url, { method: 'GET', headers: { 'If-None-Match': etag }, }); 其中,etag类似于“33A64DF55142FCC55E4D42A148795D9F25F89D4” 当我直接通过邮递员/失眠症之类的方式提出这个请求时,它起作用了,我得到了相

我在react原生应用程序中遇到了一个非常奇怪的问题,其中使用etag的简单获取总是返回
200
,而不是预期的
304

const response = await fetch(url, {
  method: 'GET',
  headers: {
    'If-None-Match': etag
  },
});
其中,
etag
类似于“33A64DF55142FCC55E4D42A148795D9F25F89D4”

当我直接通过邮递员/失眠症之类的方式提出这个请求时,它起作用了,我得到了相应的
304
响应

在Reactotron中检查应用程序时,我可以看到网络请求标头似乎是正确的:

如果将JSON请求复制为cURL,则会得到以下结果:

旋度-H“如果不匹配:“33A64DF55142FCC55E4D42A148795D9F25F89D4”

稍作修改,仅显示标题:

curl-sD--o/dev/null-H“如果没有匹配:”33A64DF55142FCC55E4D42A148795D9F25F89D4“

它也只返回一个
200
,但是如果我像这样转义etag周围的引号,它会工作:

curl-sD--o/dev/null-H“如果不匹配:\“33A64DF55142FCC55E4D42A148795D9F25F89D4”

我真的很困惑,因为我已经尝试了以下所有变体:

'If-None-Match': etag
'If-None-Match': `"${etag}"`
'If-None-Match': `\"${etag}\"`
'If-None-Match': '"' + etag + '"'
没用,我做错了什么

将相同的获取请求放入html文件中,并在浏览器中进行测试,以达到预期的
304
状态