Проблемы с загрузкой "AJAX" с помощью jQuery - PullRequest
1 голос
/ 30 июля 2010

Я пытаюсь создать простой загрузчик "AJAX" (насколько я знаю, вы на самом деле не можете загружать AJAX).У меня есть проблемы, и я действительно не хочу использовать плагин.Я пишу приложение, которое должно иметь вложения PDF как часть формы, и код моего приложения уже содержит около 1000 строк JS + jQuery.Я не хочу добавлять дополнительные 1000k SWFObject или гигантский плагин формы.Кроме того, мне нравится изучать вещи, поэтому я знаю, как они работают :), и я довольно хорошо разбираюсь в JS ...

Вот что у меня есть:

<!DOCTYPE html>
<html>
    <head>
        <title>Upload Test</title>
        <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
        <script>            
            $(function(){
                $('#file_upload').submit(function(){
                    $('#file_upload').attr('target','upload_target');
                    alert($('iframe').contents().text());
                    return false;

                });
            });
        </script>
    </head>
    <body>
        Upload Test to 382
        <form id="file_upload" method="post" enctype="multipart/form-data" action="io.cfm?action=updateitemfile&item_id=382">
            <input name="binary" id="file" size="27" type="file" /><br />
            <input type="submit" name="action" value="Upload" /><br />
            <iframe id="upload_target" name="upload_target" src="" style=""></iframe>
        </form>

    </body>
</html>

Я продолжаю читать, что если я добавлю целевой атрибут в форму, форма будет отправлена ​​туда, но не повезло вообще.Это просто не помещает ничего в iframe.Атрибут «action» будет динамическим в зависимости от того, какой элемент выбран.Если я отключаю все «AJAX», он тоже работает нормально, и у меня нет доступа к бэкэнду, так как это внутренний API.

Итак, как мне отправить это в iframe и затем получитьСодержимое iframe, которое будет ответом JSON?

PS Это всего лишь тестовая страница, на которой я работаю ... obv, это не все приложение.

1 Ответ

1 голос
/ 30 июля 2010

Это не значит, что submit формы заполняет <iframe>.POST должен вернуться на сервер - вы это видите?Тогда ответ сервера будет в <iframe>.Как правило, вы делаете так, чтобы Ajax выглядел примерно так, чтобы страница ответа содержала некоторый Javascript, который каким-то образом возвращается на главную страницу.что происходит.

Смысл этого состоит в том, чтобы избежать поведения по умолчанию при отправке формы.Когда вы отправляете форму простым старым способом HTML, страница, содержащая форму, заменяется ответом с сервера.Когда вы нацеливаете форму на <iframe>, это не так.Вместо этого ответ направлен на «страницу» внутри фрейма.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...