2010-09-03 34 views
0

沒有錯,只要我將庫更改爲1.3.2我的成功之後工作得很好?怎麼會?似乎沒有,即使測試的警報..jQuery:在1.3.2中運行成功,但在1.4.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庫工作嗎?

+4

什麼是固定的? – SLaks 2010-09-03 22:35:01

+0

這和你以前的問題有什麼不同? http://stackoverflow.com/questions/3639317/jquery-whats-up-with-the-success – user113716 2010-09-03 22:38:04

+0

fixed是一個var fixed = 1;如果圖像有固定的大小.. – Karem 2010-09-03 22:42:06

回答

1

回來的JSON是無效的,您發佈的例子:

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

我在頁面得到的迴應:

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

兩者都不是有效的JSON,你需要去除那裏的()包裝。您可以在這裏檢查您的JSON響應的有效性:http://www.jsonlint.com/

1.3.2與1.4.2的區別在於1.4.0中jQuery添加了嚴格的JSON檢查,如果無效,它將失敗(因此可能會更好瀏覽器的本機JSON解析器的優勢)。

From the 1.4 release notes

嚴格JSON解析,使用本機JSON.parse:(jQuery.ajax() DocumentationCommit 1Commit 2Commit 3

jQuery的1.3和更早的版本中使用JavaScript的eval評估傳入的JSON。如果可用,jQuery 1.4使用本機JSON解析器。它還驗證傳入的JSON的有效性,因此格式不正確的JSON(例如{foo: "bar"})將被jQuery拒絕,並在指定「json」作爲Ajax請求的數據類型時在jQuery.getJSON中。

+0

謝謝!! .... – Karem 2010-09-04 10:59:54

相關問題