上传文件时dojo.io.iframe错误

Gra*_*ins 5 javascript dojo

当尝试使用dojo.io.iframe上传图像文件<2MB时,今天遇到了一个有趣的问题.

我调用了处理表单的函数,但在将表单发布到服务器之前,我收到以下错误:

TypeError:ifd.getElementsByTagName("textarea")[0]未定义

我用于处理表单帖子的函数是:

function uploadnewlogo(){

var logoDiv = dojo.byId('userlogo');
var logoMsg = dojo.byId('uploadmesg');

//prep the io frame to send logo data.
dojo.io.iframe.send({
    url: "/users/profile/changelogo/",
    method: "post",
    handleAs: "text",
    form: dojo.byId('logoUploadFrm'),
    handle: function(data,ioArgs){

        var response = dojo.fromJson(data);


        if(response.status == 'success'){

            //first clear the image
            //dojo.style(logoDiv, "display", "none");
            logoDiv.innerHTML = "";

            //then we update the image
            logoDiv.innerHTML = response.image;

        }else if(response.status == 'error'){

            logoMsg.innerHTML = data.mesg;

        }else{              

            logoMsg.innerHTML = '<div class="error">Whoops! We can not process your image.</div>';
        }

    },
    error: function(data, ioArgs){

        logoMsg.innerHTML = '<div class="error">' + data + '</div>';

    }
});

}
Run Code Online (Sandbox Code Playgroud)

表单是非常基本的,只有一个文件输入组件和一个调用这个javascript和dojo的简单按钮.

我的应用程序中有非常类似的代码,上传word/pdf文档并且没有错误,但出于某种原因,这样做.

关于我应该尝试让它无误地工作的任何想法或指示?

哦,我正在使用php和Zend框架作为后端,如果它与它有任何关系,但我怀疑它,因为它甚至没有在它失败之前击中服务器.

非常感谢,

格兰特

Ale*_*eng 1

由于负载处理程序dojo.io.iframe.send()已被触发,因此请求应该已发送到服务器并且响应返回。我认为服务器的响应不正确。也许服务器返回一个错误页面。

使用 Firebug 检查当前页面的 DOM,找到 Dojo 创建的传输 iframe 并检查其内容。Firebug 也可以捕获 iframe I/O,请检查其 Net 选项卡。您可能会找到此问题的根本原因。