CNode

有没有人遇到过在chrome中一个图片发送两次请求?

问答
Kking-king发布于9 年前最后回复9 年前9 回复5487 浏览0 收藏

在js中通过document.createElement("img")创建一个离屏image,然后赋值一个正确的src,在dev tool的network里看到的是发送一次请求,但是在服务器端以及fiddler抓包会出现有两次的情况,出现比较随机。但是一旦出现,就会连续出现,比较明显。我的测试机器版本是chrome64_56.0.2924.87

查看回复

回复 (9)

M
MedusaLeee#1·9 年前

是不是跨域请求,一个option一个get 或者你的图片过大,浏览器默认用range去拆分读取图片

来自酷炫的 CNodeMD

J
jpuncle#4·9 年前

如果返回内容不是图片格式,可能有的工具会再次请求,所以返回正确的 content-type 和图片内容,哪怕一个 1x1的图

K
king-king#5·9 年前
引用 jpuncle如果返回内容不是图片格式,可能有的工具会再次请求,所以返回正确的 content type 和图片内容,哪怕一个 1x1的图

@jpuncle 你这个问题我也考虑到了,我返回的的确不是图片,http的body我没写东西,但是我的content-type是对的。如果因为我返回的不是图片,没内容而重新再次请求的话,那理论上这个问题完全可以100%的复现,可是我现在测试结果是,出现重复请求的情况非常随机,完全没有规律

J
jpuncle#6·9 年前

@king-king content-type 对,但是真实内容不是图片的话,有一些工具预览的时候,预览失败,会重复发,而且可能连续发

K
king-king#7·9 年前
引用 jpuncle@king king content type 对,但是真实内容不是图片的话,有一些工具预览的时候,预览失败,会重复发,而且可能连续发

@jpuncle 我每次都是没内容的,那不是应该每次都重发吗?可是测试发现chrome上重发的情况比较随机,有时重发有时不重发

J
jpuncle#8·9 年前

@king-king 预览失败才会重发,如果没有触发预览,不会重发。 另外,这个只是我的猜测,说多少都没有用,你写代码验证一下才是正道

N
nullcc#9·9 年前

以前遇到过这种问题,后来发现有第一个请求是HEAD,第二个才是真正去GET图片

参与回复
登录后即可参与回复。登录