0

什么都没有,只要我将 lib 更改为 1.3.2,我成功的东西就可以正常工作了吗?怎么会?甚至没有出现带有 TEST 的警报..

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

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 库一起使用?

4

1 回答 1

1

返回的 JSON 无效,您发布的示例:

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

我在页面中得到的回复:

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

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

1.3.2 与 1.4.2 的区别在于,jQuery 在 1.4.0 中添加了严格的 JSON 检查,如果它无效,它将失败(因此它可以更好地利用浏览器的原生 JSON 解析器)。

从 1.4 发行说明

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

jQuery 1.3 和更早的版本使用 JavaScripteval来评估传入的 JSON。jQuery 1.4 使用本机 JSON 解析器(如果可用)。它还验证传入 JSON 的有效性,因此在jQuery.getJSON中以及在将“json”指定为 Ajax 请求的 dataType 时{foo: "bar"},jQuery 将拒绝格式错误的 JSON(例如 ) 。

于 2010-09-04T10:54:05.450 回答