在Firefox上使用Jquery + ASP.Net MVC获取解析错误

时间:2009-09-19 18:50:43

标签: javascript jquery asp.net-mvc firefox

我有一个简单的$ .ajax请求,我试图在我的ASP.Net MVC应用程序中获取一些HTML内容。

        // Load the claim table
    function GetClaimTable() {
        $.ajax({
            type: "GET",
            url: "claimtable",
            data: {},
            datafilter: null,
            dataType:'text',
            success: function(msg){
                alert(msg);
                $("#claimTable").html(msg.responseText);
            },
            error: function(msg, sdf, sdd) {
                alert(sdf);
                alert(sdd);
            }
        });

但是我得到了一个解析错误。调用成功,因为我在firefox中看到200 OK,错误有XmlHttpRequest对象,它在responseText属性中有正确的数据。

代码在IE中运行良好但在firefox中失败。 url claimtable是一个简单的MVC Action。

我在这里读到jQuery / ASP MVC -- parsererror in "$.ajax" calls这是由于在jquery 1.3.2中解决的拼写错误。但是我有1.3.2而且我收到了这个错误。

任何帮助?

3 个答案:

答案 0 :(得分:0)

如果您尝试从服务器获取HTML,为什么要指定dataType:'text'?您的操作发回的ContentType标头是什么?看起来服务器发送的ContentType标头与实际内容之间存在一些不一致。

答案 1 :(得分:0)

我终于找到了为什么会这样。原因是我编写的ajaxSetup可以更顺畅地处理我的jQuery webservice请求。显然有些事情是错的,即使我在我的新函数中覆盖了设置并且发生了parsererror。我删除了ajaxSetup,现在事情进展顺利。

这是破坏我生命3小时的功能。

$.ajaxSetup({
    type: "POST",
    cache:false,
    contentType:"application/json;charset=utf-8",
    data:"{}",
    dataFilter: function(data) {
        var msg;

        if (typeof (JSON) !== 'undefined' && 
            typeof (JSON.parse) === 'function')
          msg = JSON.parse(data);
        else
          msg = eval('(' + data + ')');

        if (msg.hasOwnProperty('d'))
          return msg.d;
        else
          return msg;
        }
});

看起来很无辜。是吗?

答案 2 :(得分:-1)

无需执行msg.responseText。 msg本身就是responseText