Javascript &引用;AJAX";使用jQuery上传问题

Javascript &引用;AJAX";使用jQuery上传问题,javascript,jquery,html,ajax,json,Javascript,Jquery,Html,Ajax,Json,我正在尝试创建一个简单的“AJAX”上传程序(因为我知道您实际上无法进行AJAX上传)。我有问题,我真的不想使用插件。我正在编写一个应用程序,它需要将PDF附件作为表单的一部分,我的应用程序的代码已经有大约1000行JS+jQuery了。我不想添加额外的1000k SWFObject或一个巨大的表单插件。另外,我喜欢学习东西,所以我知道它们是如何工作的:)而且我也相当精通JS 以下是我到目前为止的情况: <!DOCTYPE html> <html> <hea

我正在尝试创建一个简单的“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>

上传测试
$(函数(){
$('#文件上传')。提交(函数(){
$('file_upload').attr('target','upload_target');
警报($('iframe').contents().text());
返回false;
});
});
将测试上传到382


我一直在读,如果我将目标attr添加到表单中,表单将在那里提交,但一点运气都没有。它只是没有在iframe中放入任何内容。“操作”属性将根据所选项目而动态变化。如果我关闭所有的“AJAX”,它也可以正常工作,而且我无法访问后端,因为它是一个内部API

那么,我如何将其提交到iframe,然后获取iframe的内容,这将是一个JSON响应

另外,这只是一个测试页面,我正在。。。obv这不是整个应用程序。

不是表单的提交填充了
。帖子应该会回到服务器上,你看到了吗?然后,服务器响应将在
中结束。通常,为了让它看起来有点像Ajax,您要做的是让响应页面包含一些Javascript,以某种方式与主页对话

停止从提交处理程序返回
false
,看看会发生什么

这样做的目的是避免表单提交的默认行为。当您以普通的旧HTML方式提交表单时,包含表单的页面将被服务器的响应所取代。但是,当您将表单指向
时,它不是。相反,响应指向框架内的“页面”。

并不是表单的提交填充了
。帖子应该会回到服务器上,你看到了吗?然后,服务器响应将在
中结束。通常,为了让它看起来有点像Ajax,您要做的是让响应页面包含一些Javascript,以某种方式与主页对话

停止从提交处理程序返回
false
,看看会发生什么


这样做的目的是避免表单提交的默认行为。当您以普通的旧HTML方式提交表单时,包含表单的页面将被服务器的响应所取代。但是,当您将表单指向
时,它不是。相反,响应指向帧内的“页面”。

我被提示下载io.cfm文件?是因为它返回原始JSON吗?我可以要求服务器人员对此进行更改,但这可能需要一些时间,如果可能的话,我希望得到JSON响应。JSON响应对您没有任何好处,因为浏览器不知道如何处理它。检查响应中的标题;如果它提供一个文件供下载,那么让它工作的机会就更少了。我应该让他们以什么格式给我?那么XML、HTML或返回JSON的文本头,然后我的JS将其解字符串呢?等等,这个“io.cfm”URL在哪里?这是一个真实的URL还是一个文件?在没有某种服务器运行的情况下,即使只是CGI,测试这一点也将介于“非常困难”和“不可能”之间。我被提示下载io.cfm文件?是因为它返回原始JSON吗?我可以要求服务器人员对此进行更改,但这可能需要一些时间,如果可能的话,我希望得到JSON响应。JSON响应对您没有任何好处,因为浏览器不知道如何处理它。检查响应中的标题;如果它提供一个文件供下载,那么让它工作的机会就更少了。我应该让他们以什么格式给我?那么XML、HTML或返回JSON的文本头,然后我的JS将其解字符串呢?等等,这个“io.cfm”URL在哪里?这是一个真实的URL还是一个文件?在没有某种服务器运行的情况下,即使只是CGI,测试这一点也将介于“非常困难”和“不可能”之间。