gpt4 book ai didi

jQuery ajax POST 导致立即 GET 到同一 URL

转载 作者:行者123 更新时间:2023-12-01 00:54:39 25 4
gpt4 key购买 nike

我正在使用 jQuery (1.4.2) 和 Django 后端,并在 Debian 上使用 Firefox (3.5.15) 进行开发。我使用 $.ajax() 将一些数据发布到我的服务器,服务器将数据反射回浏览器。 Firefox 正在发送 POST,然后立即对同一 URL 执行 GET。这个 GET 从哪里来?我不希望这种事发生。

我用来发布的代码如下所示:

$.ajax({
type: 'POST',
url: '/edit_value/',
data: JSON.stringify(data_to_post),
success: function(updated) {
alert('success');
},
error: function(request, description, exception) {
alert('error');
},
async: false,
dataType: 'json'
});

我看到成功警报消息,而不是错误警报消息。查看我的服务器日志,我正确地回显了 data_to_post。

我看过 tcpdump 并看到了 POST 请求。它看起来完全符合我的预期:

POST /edit_value/ HTTP/1.1
Host: localhost:8000
User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.1.15) Gecko/20101028 Iceweasel/3.5.15 (like Firefox/3.5.15)
Accept: application/json, text/javascript, */*
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Connection: keep-alive
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
X-Requested-With: XMLHttpRequest
Referer: http://localhost:8000/
Content-Length: 30
Cookie: csrftoken=9e3edd79a51956f088f4a505ca1b4282; sessionid=80d72430f4682632ccfb8dc8047b7d17
Pragma: no-cache
Cache-Control: no-cache

[{"id":"161","value":"988.0"}]

响应看起来也很正常:

HTTP/1.0 200 OK
Date: Mon, 22 Nov 2010 07:28:44 GMT
Server: WSGIServer/0.1 Python/2.6.6
Vary: Cookie
Content-Type: text/json

[{"id":"161","value":"988.0"}]

如果async设置为true,有时浏览器会提前挂断TCP连接,有时请求/响应完成。通过将 async 设置为 false,请求/响应始终完成(在上面的示例中设置为 false)。然后 Firefox 立即发送 GET。

GET /edit_value/ HTTP/1.1
Host: localhost:8000
User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.1.15) Gecko/20101028 Iceweasel/3.5.15 (like Firefox/3.5.15)
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Connection: keep-alive
Referer: http://localhost:8000/
Cookie: csrftoken=9e3edd79a51956f088f4a505ca1b4282; sessionid=80d72430f4682632ccfb8dc8047b7d17

这个 GET 从哪里来?如何在页面重新加载之前将其捕获到 Firebug 中?我还可以提供哪些其他信息?

谢谢,克雷格

最佳答案

当我对 <form> 中的值发出 Ajax 请求时,我遇到了类似的问题。标签。

我的问题出现是因为我对该表单(例如 <form action="mypage.aspx"... )执行了操作,即使 Ajax POST 成功,也会导致表单被提交。

如果这与您的情况相同,请尝试删除表单标记中的操作声明或包含 return false;关于您的 Ajax 请求的声明。

关于jQuery ajax POST 导致立即 GET 到同一 URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4243311/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com