简单JsonResult jQuery的AJAX方法返回parsererror [英] Simple JsonResult returns parsererror on Jquery ajax method

查看:398
本文介绍了简单JsonResult jQuery的AJAX方法返回parsererror的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我使用asp.net MVC2使用jQuery 1.5.2。我pretend是让客户端调用在我的控制器返回一个JSON数据的具体方法。

其实,我的客户端调用服务器工作正常,但问题是,jQuery的不承认返回的JSON。

我不明白我在做什么错!能有一个人helpme这个?

控制器方法:

 < HttpPost()> _
功能DoStuff(BYVAL编号为整数)作为JsonResult
    昏暗RETVAL作为JsonResult =无    RETVAL = JSON(新xpto随着{.P1 =P1Value})    返回RETVAL
结束功能

JQuery的Ajax调用:

  $阿贾克斯({
        网址:/ DoStuff / 5,
        键入:POST,
        数据类型:JSON
        异步:假的,
        成功:功能(数据,textStatus,jqXHR){
            警报(textStatus);
        },
        错误:功能(jqXHR,textStatus,errorThrown){
            警报(textStatus);
        }
    });

值时,处理错误的方法:


  

errorThrown:jQuery1520029581770420782693_1303980789842不叫


  
  

textStatus:parsererror


  
  

jqXHR.responseText ={P1:P1Value}



解决方案

这个问题是不是在上code,这是工作的罚款,由上标记的Sctipt标记顺序(验证)所产生的问题

错误的:

 <脚本的src =/脚本/ jQuery的-1.5.2.min.js类型=文/ JavaScript的>< / SCRIPT>
<脚本的src =/脚本/ jQuery的-UI-1.8.11.custom.min.js类型=文/ JavaScript的>< / SCRIPT>
<脚本的src =/脚本/ jquery.validate.min.js类型=文/ JavaScript的>< / SCRIPT>
<脚本的src =/脚本/ jquery.maskedinput-1.3.min.js类型=文/ JavaScript的>< / SCRIPT>

右:

 <脚本的src =/脚本/ jQuery的-1.5.2.min.js类型=文/ JavaScript的>< / SCRIPT>
<脚本的src =/脚本/ jQuery的-UI-1.8.11.custom.min.js类型=文/ JavaScript的>< / SCRIPT>
<脚本的src =/脚本/ jquery.maskedinput-1.3.min.js类型=文/ JavaScript的>< / SCRIPT>
<脚本的src =/脚本/ jquery.validate.min.js类型=文/ JavaScript的>< / SCRIPT>

i'm using asp.net mvc2 with jquery 1.5.2. what i pretend is to make client-side call to a specific method in my controller that returns a json data.

Actually, my client-side call to server is working, but the problem is that jquery doesn't recognize the returned json.

I cannot understand what i'm doing wrong!, can some one helpme with this?

Controller method:

<HttpPost()> _
Function DoStuff(ByVal id As Integer) As JsonResult
    Dim retval As JsonResult = Nothing

    retval = Json(New xpto With {.P1 = "P1Value"})

    Return retval
End Function

JQuery Ajax call:

    $.ajax({
        url: "/DoStuff/5",
        type: "POST",
        dataType: "json",
        async: false,
        success: function(data, textStatus, jqXHR) {
            alert(textStatus);
        },
        error: function(jqXHR, textStatus, errorThrown) {
            alert(textStatus);
        }
    });

Values when Handles Error method:

errorThrown: jQuery1520029581770420782693_1303980789842 was not called

textStatus: parsererror

jqXHR.responseText = "{"P1":"P1Value"}"

解决方案

The problem was not in the on that code, that is working fine, the problem is generated by the Sctipt tag order on the markup (validate)

WRONG:

<script src="/Scripts/jquery-1.5.2.min.js" type="text/javascript"></script>
<script src="/Scripts/jquery-ui-1.8.11.custom.min.js" type="text/javascript"></script>
<script src="/Scripts/jquery.validate.min.js" type="text/javascript"></script>
<script src="/Scripts/jquery.maskedinput-1.3.min.js" type="text/javascript"></script>

RIGHT:

<script src="/Scripts/jquery-1.5.2.min.js" type="text/javascript"></script>
<script src="/Scripts/jquery-ui-1.8.11.custom.min.js" type="text/javascript"></script>
<script src="/Scripts/jquery.maskedinput-1.3.min.js" type="text/javascript"></script>
<script src="/Scripts/jquery.validate.min.js" type="text/javascript"></script>

这篇关于简单JsonResult jQuery的AJAX方法返回parsererror的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆