uploadify + jQuery 1.4响应在uploadComplete之后为空

时间:2010-01-16 22:08:35

标签: jquery uploadify

我正在使用带有jquery 1.4的uploadify上传图片。在上传文件的php脚本中我们打印出来:

$json_response['status'] = "true";
$json_response['file'] = $_FILES;
echo Zend_Json_Encoder::encode($json_response);

在javascript中我们(简而言之):

$('#images_upload_file').uploadify({

    onComplete: function(event, queueID, fileObj, response, data) {

            console.log("upload complete");
            console.log(response);

无论如何,“回应”总是空的。 Event,queueID,fileObj和数据都正确填充。有谁知道如何解决这个问题?

如果您需要更多信息,请与我们联系。 PS:我们的代码上传图片就好了,自从我们升级到jquery 1.4以来,响应一直是空的

2 个答案:

答案 0 :(得分:1)

我总是使用json2.js来处理任何json数据。如果数据不是正确的json格式,该库具有安全机制。您可以从http://json.org获取,请务必下载js文件,而不是直接从其网站上使用。

我的代码总是这样:

onComplete : function (event, queueID, fileObj, response, data) {
  //process response
  try {
    var r = JSON.parse(response);
    //process the JSON data, ex
    console.log(r.status); 
  }
  catch(e) {
    //not json or bad format, do something about it
    alert("cannot parse data as json!");
  }
}

我使用json2.js的原因是因为我的php脚本有会话检查,如果不接受会话则会重定向。它在进入页面之前使用过滤器模块完成,因此我无法检查它是AJAX请求还是正常页面访问。如果所需的会话不满足页面的规则,它将立即重定向,因此它将返回一个完整的网页。

这将使响应不是有效的json格式。使用json2.js我可以在catch块中处理它,然后执行另一个操作,例如重新加载当前页面。这只是我经常使用的东西,而且总是为我工作。

仅供参考,json2.js根本不需要与jQuery无关。

答案 1 :(得分:0)

PHP脚本中是否启用了error_reporting?

由于error_reporting设置,它是否会导致致命错误(例如因为它无法加载Zend_Json_Encoder类)?