【发布时间】:2014-12-14 11:46:42
【问题描述】:
我有一个客户端 javascript 应用程序。在特定触发时,应用程序使用 window.open() 创建一个新窗口。在新窗口中,我想允许用户上传文件。为此,我在新窗口中提供了一个表格。表单相当简单——一个“文件”类型的输入元素和一个提交按钮。当用户单击第一个元素时,弹出窗口正确显示以允许从本地文件系统中选择文件。用户选择文件后,当我单击提交按钮时,窗口只是空白;文件内容不会上传到服务器。服务器是使用端口号的专有服务器,一些专有端口号(比如 30000)用于与客户端的 http 会话。 如果我在原始窗口中使用相同的 javascript(即不打开新窗口),文件内容将被发布,并且我看到服务器接收文件内容。但是如果在新窗口中执行,什么都不会发生。脚本(此功能所需的核心部分)如下。
myWin = window.open("", "", "width=400, height=400,scrollbars=yes, resizable=yes");
var myForm = myWin.document.createElement("form");
myForm.action = "";
myForm.method = "post";
myForm.enctype = "multipart/form-data";
myWin.document.body.appendChild(myForm);
var myInp = myWin.document.createElement("input");
myInp.type = "file";
myInp.name = "filename";
myForm.appendChild(myInp);
var myBtn = myWin.document.createElement("input");
myBtn.type = "submit";
myBtn.value = "Upload";
myBtn.onclick = "Upload";
myForm.appendChild(myBtn);
知道有什么问题吗?我需要对新窗口进行任何其他设置吗?我怀疑可能是新窗口没有上传,因为打开新窗口时没有维护同源策略 - 也许专有端口号没有从第一个窗口复制到第二个窗口;但是 - 我不确定;即使我是我也不知道如何解决这个问题。我将不胜感激任何帮助。谢谢。
【问题讨论】:
标签: javascript forms post file-upload new-window