JQuery Posts停止了工作

时间:2010-06-22 15:02:37

标签: jquery ajax post

我有一个使用JQuery编写的Web应用程序。我在整个应用程序中使用了$ .post方法,包括登录屏幕。它工作正常,现在突然出现了,它不再有效。然而,post响应现在返回null;如果我手动输入帖子,它会返回我期望的JSON代码。

可能有用的一些事情: 1.)我正在链接谷歌托管的JQuery。 2.)我没有对我的代码或网站进行任何更改。它在今天早上前一周工作正常。 3.)偶尔,jquery post请求确实有效。特别是当我慢慢地踩过代码时。

以下是代码失败的信息:

function TryLoggingIn()
{
$.post(
    "login.php",
    {action: "login", username: $("#_uxUsername").val(), password: $("#_uxPassword").val(), redirect: $("#_uxRedirect").val()},
    function(data)
    {
        if (data.response == "error")
        {
            $("#_uxErrorBox").slideUp();
            $("#_uxErrorBox").slideDown();
            $("#_uxErrorText").text(data.message);
            $(".widgetErrorIcon").show();
        }
        else
        {
            window.location = data.newlocation;
        }
    },
    "json"
 );

}

奇怪的是,当它失败并且我正在使用WireShark观看它时,我从未看到发布请求,但它进入了成功函数,数据设置为null。

1 个答案:

答案 0 :(得分:2)

要检查的一件事,特别是如果WireShark没有看到任何请求,那就是浏览器是否正在缓存Ajax目标。防止这种情况的一种方法是在您的URL中附加一个无意义的查询字符串或锚点,其中包含一个随机数字。

Firebug对于这类事情也很有用,尽管使用WireShark也是一个好主意。

最后,使用jQuery.ajax()函数而不是jQuery.post()重写ajax调用通常很有用,因为这样可以调整更多内容,例如超时值,“缓存”国旗等。