React native 用'取数;如果没有匹配项';:&引用;etag“;在React本机应用程序中标头始终返回200
我在react原生应用程序中遇到了一个非常奇怪的问题,其中使用etag的简单获取总是返回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” 当我直接通过邮递员/失眠症之类的方式提出这个请求时,它起作用了,我得到了相
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
状态