2010-09-03 5 views
0

Ничего нехорошо, как только я сменил lib на 1.3.2. Как идет? появляется не даже предупреждение TEST ..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

+0

Как это отличается от вашего предыдущего вопроса? http://stackoverflow.com/questions/3639317/jquery-whats-up-with-the-success – user113716

+0

Исправлено: var fixed = 1; если изображение имеет фиксированный размер. – Karem

ответ

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() Documentation, Commit 1, Commit 2, Commit 3)

JQuery 1,3 и более ранних версий используется в JavaScript eval оценить поступающую JSON. jQuery 1.4 использует собственный анализатор JSON, если он доступен. Он также проверяет достоверность входящего JSON, поэтому неправильный JSON (например, {foo: "bar"}) будет отклонен jQuery в jQuery.getJSON и при указании «json» как dataType запроса Ajax.

+0

Спасибо! .... – Karem