在iframe中上传文件后从远程服务器检索响应

mas*_*don 6 javascript iframe jsonp response cross-domain

我有一个表单,将文件中的文件上传到远程服务器.因此,在提交url服务器返回json数据与操作结果,我的iframe捕获.

{'result': 'true' or 'false'}
Run Code Online (Sandbox Code Playgroud)

现在我想将这个json作为我的iframe的回调来检索.我知道我需要jsonp来实现这一点,因为它是一个跨站点调用.这是我的函数,其中包含来自IBM网站的示例代码:

function fileUploadFunction(){     
    var fileUploadForm = $('#file_upload_form');
    fileUploadForm.attr('action', uploadURL);
    fileUploadForm.submit();
    $('#upload_target').load(function () {
        alert("IFrame loaded");
            $.getJSON(uploadUrl+"&callback=?", function(data) {
                alert("Symbol: " + data.symbol + ", Price: " + data.price);
            });
    });         
};
Run Code Online (Sandbox Code Playgroud)

但这里几乎没有出现问题.首先 - 我的uploadUrl只是"http:// something /".我是否需要它来支持带$callback=后缀的通话?
其次 - 服务器仅在文件上传时给出响应.所以我需要获取存储在我的i​​frame中的结果,而不是指定的url.怎么解决这个?

这是链接.注意表单中隐藏的iframe.服务器的结果显示在那里.:

http://ntt.vipserv.org/artifact/


编辑

我以前尝试过:

    $('#upload_target').load(function () {
        var ret = frames['upload_target'].document.getElementsByTagName("body")[0].innerHTML;
        var data = eval("("+ret+")");
    });
Run Code Online (Sandbox Code Playgroud)

但它引发了"权限被拒绝"的错误.

sch*_*eld 0

一种可能的解决方案是使用纯 js 设置 iframe 的名称。该名称可以从包装父页面中读取。