Получение ответа с удаленного сервера после загрузки файла в iframe

У меня есть форма, которая загружает файл в виде файла на удаленный сервер. В результате в URL-адресе отправки сервер возвращает данные json с результатом операции, которую улавливает мой iframe.

{'result': 'true' or 'false'}

Теперь я хотел бы получить этот 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);
            });
    });         
};

Но здесь возникает несколько проблем. Во-первых, мой uploadUrl - это просто http: // something /. Требуется ли он для поддержки вызовов с суффиксом $ callback = ?
Во-вторых, сервер дает ответ только в результате загрузки файла. Поэтому мне нужно получить результат, который хранится в моем iframe, а не по указанному 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+")");
    });

Но возникает ошибка «разрешения запрещены».

6
задан mastodon 25 November 2010 в 12:36
поделиться