文章预览
最近在字节跳动的面试中遇到了一个经典问题: “post为什么会发送两次请求?” 这个问题在前端面试中非常常见,因为POST请求在我们的日常开发中经常用到,但你知道吗? 一个小小的POST请求,背后其实藏着不少知识点。 今天,我就来详细讲解一下这个问题,并结合一些技术细节,希望能帮助大家更好地理解。 浏览器的重试机制 首先,我们得知道,有时候浏览器为了保证请求的可靠性,会在网络不稳定的情况下自动重试请求。如果第一次POST请求由于网络问题没有成功,浏览器可能会自动再发一次请求。这种情况下,我们会看到两次POST请求。 一个简单的例子 fetch( 'https://example.com/api' , { method : 'POST' , body : JSON .stringify({ key : 'value' }), headers : { 'Content-Type' : 'application/json' } }) .then( response => response.json()) .then( data => console .log(data))
………………………………