jQuery的:在1.4.2 1.3.2运行成功,但不(jQuery: running succes

2019-11-04 04:59发布

没有什么是错的,只要我改变的lib到1.3.2我成功的东西工作得很好? 怎么会? 似乎没有,即使测试的警报..

这里是发生这种情况的代码:

function crop() {
    $.ajax({
        type: "POST",
        dataType: 'json',
        url:"functions.php?action=crop",
        data: 
        {
            x: $('#x').val(),y: $('#y').val(),w: $('#w').val(),
            h: $('#h').val(),fname:$('#fname').val(),fixed:fixed,
            sizew:sizew,sizeh:sizeh},
            success: function(response)
            {
                alert('TEST');
                if(!fixed) // Missing { }
                { 
                    $("#showPhoto").css({overflow:"auto"}); // Missing ;
                }
                $("#showPhoto").html(
                    $(document.createElement("img")).attr(
                        "src",response.filename)).show();

                $("#showPhoto").after("There you go...").show();
                $("#image").slideUp();
           },
          error:function(response) {
                   console.log('error: ', response);
               }
        });
    }

我怎样才能使其与jQuery 1.4.2库工作吗?

Answer 1:

回来的JSON是无效的,您发布的例子:

({"filename":"images\/profilePhoto\/thumbs\/1283596240.jpg"}) 

和响应我的页面有:

({"filename":"1283597560.jpg"})

两者都不是有效的JSON,你需要删除()上有包装。 你可以在这里检查有效性您的JSON响应: http://www.jsonlint.com/

1.3.2 VS 1.4.2不同的是,在1.4.0加入jQuery的JSON严格检查,如果它不是有效的,它会失败(因此它可以利用浏览器的原生JSON解析器更好的优势)。

从1.4版本说明 :

严格JSON解析,使用本地JSON.parse:( jQuery.ajax()文档 , 提交1 , 提交2 , 提交3 )

jQuery的1.3和更早的版本中使用JavaScript的eval评估传入的JSON。 如果可用的jQuery 1.4使用本地JSON解析器。 它也证实了其有效性传入JSON,所以畸形JSON(例如{foo: "bar"}将在由jQuery的拒绝jQuery.getJSON指定当“JSON”作为Ajax请求的数据类型和。



文章来源: jQuery: running success in 1.3.2 but not in 1.4.2