2012-02-01 3 views
1

У меня проблемы с возвратом данных JSON после использования Uploadify.json возвращает данные, не работающие в IE или Chrome

Этот код работает в Firefox, но не в IE 9 или Google Chrome.
Это скрипт скрипт для Uploadify:

 jQuery("#uploadify_gallery").uploadify({ 
     'queueID'  : 'fileQueue', 
     'uploader'  : siteURL + '/wp-content/plugins/uploadify/uploadify.swf', 
     'script'   : siteURL + '/wp-content/plugins/uploadify/uploadify_gallery.php', 
     'fileExt'  : '*.jpg;*.jpeg;*.png', 
     'auto'   : true, 
     'multi'   : true, 
     'method'   : 'POST', 
     'buttonImg'  : siteURL + '/wp-content/themes/storelocator/img/buttons/img_upload_grey_bg.png', 
     'cancelImg'  : siteURL + '/wp-content/plugins/uploadify/cancel.png', 
     'queueSizeLimit' : 20, 
     'scriptData'  : {'entity':jQuery('#entity').val(),'entity_id':jQuery('#entity_id').val()}, 
     'onComplete'  : function(event, queueID, fileObj, response, data) { 

      alert('test'); // <-- THIS WORKS 

      //This makes the json response readable 
      var result = eval("(" + response + ")"); 
      alert(result.toSource()); // <-- this never fires 
     }, 
     }); 

Это код, который я проверить с в uploadify_gallery.php:

$res = array('a' => 1, 'b' => 2, 'c' => 3, 'd' => 4, 'e' => 5); 
echo json_encode($res); 

Он работал вчера, и я получил это работает на

Любые предложения о том, как я могу это сделать?

+0

Eval is bad. Избегайте его любой ценой. Кроме того, как выглядит JSON, возвращаемый сервером на ваш скрипт? – GordonM

ответ

1

Осмотрите значение, возвращаемое сервером, и убедитесь, что t действительно JSON (например, JSONLint).

После этого вы можете использовать jQuery.parseJSON() для преобразования строки ответа в объект.

+0

Да, я обнаружил это, и это то, что я сейчас использую. Благодаря :) – Steven

0

eval(); это не очень хороший выбор, он считается довольно плохим, так как он не будет работать в Internet Explorer, по крайней мере, более старых. Проверьте это

How can I get this eval() call to work in IE?

http://24ways.org/2005/dont-be-eval

Вы получите ответ как объект JSON, поэтому вместо Eval, только петли через него с каждой

$(response).each(function(index, value) { 
    console.log(value); 
}); 

Для получения дополнительной информации на каждом, проверьте http://api.jquery.com/each/

+0

Это все еще не работает для IE или Chrome. – Steven