javascript – 如果从AJAX帖子调用,则不会点击图片上传输入

参见英文答案 > Trigger click on input=file on asynchronous ajax done()                                    3个
我有一个隐藏的输入:

<input class="hidden" id="imageInput" type="file" accept="image/*;capture=camera" />

这种“点击”的方式是有一个标签,它调用这样的函数

<label onclick="verifyValue(); return false;" class="hand-pointer">Click me!</label>

我的verifyValue()函数如下所示:

function verifyValue() {
     app.ajax({
                type: "POST",
                dataType: 'json',
                url: myUrl + '/DoSomeVerification',
                contentType: 'application/json; charset=utf-8',
                cache: false,
                data: JSON.stringify(myData),
                success: function (result) {
                            //Success? Cool, stuff has been verified
                            //Let's let them upload their image
                            $('#imageInput').click();
                   }
                error: { 
                            //Other stuff that's not relevant
                   }
    });
}

我的问题是$(‘#imageInput’).click();不起作用.当我通过它进行调试时,它会进入该行,然后绝对不做任何事情.我没有错误,没有上传文件或任何内容的对话框.

为了测试它不是我的代码的其他方面,我摆脱了AJAX帖子并将该功能简化为click事件.当我摆脱AJAX帖子时,它就像一个魅力.

另外,如果我做这样的事情而不是.click():

$('#pickTicketimageUpload').removeClass('hidden');

它使用“选择文件”按钮显示输入,然后让我单击它并上传文件.

我想知道这是否是某种浏览器安全功能,或者是否还有其他我缺少的东西.如果是某种安全功能,那么它周围有什么?

此外,它应该被提及,以便没有人挂断它,这是一个内部应用程序,我不会担心有人可以劫持这个并上传他们的图像而不做AJAX帖子.

解决方法:

由于w3c推荐的浏览器安全功能,现在无法从异步ajax回调打开文件弹出窗口.

请检查Trigger click on input=file on asynchronous ajax done()

相关文章

IE6是一个非常老旧的网页浏览器,虽然现在很少人再使用它,但...
PHP中的count()函数是用来计算数组或容器中元素的个数。这个...
使用 AJAX(Asynchronous JavaScript and XML)技术可以在不...
Ajax(Asynchronous JavaScript and XML)是一种用于改进网页...
本文将介绍如何通过AJAX下载Excel文件流。通过AJAX,我们可以...
Ajax是一种用于客户端和服务器之间的异步通信技术。通过Ajax...