Jquery Ajax Post - >只有当我单步执行ajax调用并且只有一些时间才有效.......任何想法?

时间:2012-05-21 16:31:46

标签: ajax visual-studio-2010 jquery vb.net-2010

所以,我有一个调用服务的ajax帖子,并返回一个我想在成功时解析的对象。

我在vs2010中运行它,它仅在我单步执行ajax后置代码时才有效,并且只在部分时间内有效。

此调用基本上与我所做的其他页面相同,所以我真的很困惑为什么这不起作用。

$.ajax({
                type: "POST",
                url: webMethod,
                data: parameters,
                contentType: "application/json; charset=utf-8",
                dataType: "json",
                success: function (obj) {
                    alert("Success");
                    parseStart(obj.d, id, idnum, parseType);
                },
                error: function (e) {
                    alert("Failure. :" + e);
                }
            });

这是非常标准的,我不知道为什么会这样做。我只是希望有人之前经历过这样的事情。就像我说的那样,如果我单步执行ajax代码然后它就会成功。如果我不介入它就好像它永远不会成功或失败.....这真的很奇怪。 (所以我没有看到我的提醒等,如果我不介入它)我有一个建议,可能是我的对象的大小,我从我的服务返回所以我把它修剪到接近于零,没有帮助。

非常感谢任何关于此的想法指示。我目前难倒。

3 个答案:

答案 0 :(得分:0)

可能是服务器没有返回200.也许它返回304未修改或临时重定向。

请参阅Difference between .success() and .complete()?

.success()仅在您的网络服务器响应200 OK HTTP标头时被调用 - 基本上当一切都很好时。

然而,无论ajax调用是否成功,都会调用.complete()。

答案 1 :(得分:0)

我想我知道它是什么。 ajax调用是异步的,对吧?因此需要一段时间才能得到回应。但是,如果此调用是通过链接或表单按钮生成的,并且您在此处未返回false,则会发生正常的get或post。只需在调用$ .ajax();

后返回false
$.ajax({
                type: "POST",
                url: webMethod,
                data: parameters,
                contentType: "application/json; charset=utf-8",
                dataType: "json",
                success: function (obj) {
                    alert("Success");
                    parseStart(obj.d, id, idnum, parseType);
                },
                error: function (e) {
                    alert("Failure. :" + e);
                }
            });
return false;

答案 2 :(得分:0)

好的,经过长时间的故障排除。我将按钮调用切换到正文onload而不是单击按钮,这样做可以正常工作。这是因为我使用了一个asp按钮,这个按钮在点击我的帖子时产生了一个回调。然后我删除了我的asp按钮并用输入按钮替换了它们。