首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JQuery AJAX,错误状态码: 200,状态文本: parserorro | OK

JQuery AJAX,错误状态码: 200,状态文本: parserorro | OK
EN

Stack Overflow用户
提问于 2011-04-04 23:40:33
回答 5查看 26.9K关注 0票数 5

这是我所处的一个有趣的情况。我正在使用VS2008和.Net Framework3.5开发一个ASP.Net网站,我想在测试页面中使用jquery ajax,代码如下:

代码语言:javascript
复制
C# Method
[WebMethod]
public static string test()
{
    return "Server Response" ;
}

$(document).ready(function() {
    $("#myDiv").click(function() {
        $.ajax({
            type: "POST",
            url: "AjaxTest.aspx/test",
            data: "",
            contentType: "application/json;charset=utf-8",
            dataType: "json",
                        success: function(msg) {
                            // Replace the div's content with the page 
                            // method's return.
                            alert(msg.d);
                        },
                        error: function(result){ 
                            alert("error occured. Status:" + result.status  
                            + ' --Status Text:' + result.statusText 
                            + " --Error Result:" + result); 
                        }
           });
    });
});

因此,当我像这样使用Jquery 1.4.4时:

我明白了:Status 200; Status Text: OK

当我使用jQuery1.5时,我得到:Status 200; Status Text: Parsererror

所以我在Visual Studio中创建了一个新的WebSite,将代码复制并粘贴到那里,它工作得很好!我想不出是什么导致了这个问题。我还使用了带参数的方法,并设置了数据:"{}",并完全删除了数据,但似乎都不起作用。

我不知道是否必须对我正在使用的DevExpress组件做任何事情。

我也找到了一个很好的答案,它使用了像这样的完整方法:

代码语言:javascript
复制
  complete: function(xhr, status) {
            if (status === 'error' || !xhr.responseText) {
                alert("Error");
            }
            else {
                var data = xhr.responseText;
                alert(data);
                //...
            }
        }

但我不知道它是否能很好地工作,或者这种方法也可能有其他问题。我也不知道如何从这里访问响应数据。但我主要关心的是找出是什么导致了我的网站的问题。

更新:今天在谷歌浏览器控制台上,我注意到了JQuery 1.5的一些语法问题,如下所示:

未捕获的令牌:意外的jQuery.ajaxTransport.send.callbackjquery.js:7441 < jQuery.jQuery.extend.globalEvaljquery.js:593 jQuery.ajaxSetup.converters.text scriptjquery.js:7175 ajaxConvertjquery.js:7074 donejquery.js:6622

EN

回答 5

Stack Overflow用户

发布于 2011-04-04 23:46:06

你应该使用Fiddler --一个很棒的web调试代理。在它的帮助下,您可以监视服务器和客户端之间的所有通信

票数 2
EN

Stack Overflow用户

发布于 2011-04-05 02:27:33

不确定这是否有帮助,但是ajax() API指定他们已经更改了success()回调函数的返回对象。这来自于jQuery API。

从jQuery 1.5开始,成功回调函数接收"jqXHR“对象(在jQuery 1.4中,它接收XMLHttpRequest对象)。但是,由于JSONP和跨域GET请求不使用XHR,在这些情况下,传递给成功回调的jqXHR和textStatus参数是未定义的。

你可以在这里找到它,如果它有帮助的话...

jQuery $ajax API

我遇到了类似的问题,并且无法从任何回调函数中提取JSON对象。

票数 1
EN

Stack Overflow用户

发布于 2012-07-19 17:06:57

我也遇到过这个问题,但是在PHP语言中,当我把'remote.php'

代码语言:javascript
复制
`echo $msg`' 

出现问题。当我使用json_encode()

代码语言:javascript
复制
echo json_encode($msg);

然后一切都能正常工作。

这很奇怪,因为我从服务器得到了状态为“OK”的响应,所以函数“success”应该是有效的,而不是“error”。在“成功”中,我只有

代码语言:javascript
复制
success: function(res){ console.log(res);}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5540905

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档