Javascript Dojo 1.9.3 xhr与iframe

Javascript Dojo 1.9.3 xhr与iframe,javascript,ajax,iframe,dojo,xmlhttprequest,Javascript,Ajax,Iframe,Dojo,Xmlhttprequest,到底用什么?!我有一个request/xhr模块,它不能发布多部分/表单数据(两个文本字段和一个文件上传)。使用Iframe时,我可以毫无问题地发布表单。不过我想使用xhr。另一方面,不能使用Iframe,因为我将无法读取响应正文。xhr是否支持数据的多部分/for?是否还有其他方法可以执行这个简单的任务:发布一个文件和两个名称,然后获取JSONObject响应。我正在读文件的部分内容 *************************** Dojo Code ************

到底用什么?!我有一个request/xhr模块,它不能发布多部分/表单数据(两个文本字段和一个文件上传)。使用Iframe时,我可以毫无问题地发布表单。不过我想使用xhr。另一方面,不能使用Iframe,因为我将无法读取响应正文。xhr是否支持数据的多部分/for?是否还有其他方法可以执行这个简单的任务:发布一个文件和两个名称,然后获取JSONObject响应。我正在读文件的部分内容

    ***************************  Dojo Code ***************************

 <script>dojoConfig = {parseOnLoad: true}</script>
  <script src='dojo-release-1.9.3/dojo/dojo.js'></script>
 </head>

 <body class="claro">
 <form data-dojo-type="dijit/form/Form" id="myForm" data-dojo-id="myForm"
   encType="multipart/form-data" action="" method="">
   <label for="firstname">FirstName</label><input data-dojo-  
   type="dijit/form/ValidationTextBox" type="text" name="fname"/>
   <label for="lastname">LastName:</label><input data-dojo-
   type="dijit/form/ValidationTextBox" type="text" name="lname" />
 <label for="fileName">Certificate Upload:</label><input type="file" name="fileName" />
    <button type="button" id="startButton">Start</button> </form>

 <script>
 require(["dojo/request/xhr", "dojo/dom", "dojo/dom-form", "dojo/dom-construct", 
 "dojo/json", "dojo/on", "dojo/domReady!"],
  function(xhr, dom, domForm, domConst, JSON, on){

  on(dom.byId("startButton"), "click", function(){
  var data = domForm.toObject("myForm");

  xhr("addUser",{
  data: data,
  method:"post",
   handleAs:"json"
   }).then(function(cert){    
    alert("data received!");       
   }, function(err){    
   alert("data denied!!!");    
   alert(err); }); }); });
***************************************道场代码***************************
dojoConfig={parseOnLoad:true}
名字
姓氏:
证书上载:
开始
require([“dojo/request/xhr”、“dojo/dom”、“dojo/dom表单”、“dojo/dom构造”,
“dojo/json”、“dojo/on”、“dojo/domReady!”],
函数(xhr、dom、domForm、domcont、JSON、on){
在(dom.byId(“startButton”),“单击”,函数()上{
var data=domForm.toObject(“myForm”);
xhr(“添加用户”{
数据:数据,
方法:“张贴”,
handleAs:“json”
}).then(函数(证书){
警报(“收到数据!”);
},函数(err){
警报(“数据被拒绝!!!”;
警告(错误);});});});
********************Servlet代码*****************************

       protected void doPost(HttpServletRequest request,
      HttpServletResponse response) throws ServletException, IOException {  

    String FirstName = request.getParameter("fname"); // Retrieves <input type="text"  
    name="description">
    String LastName = request.getParameter("lname"); // Retrieves <input type="text" 
    name="description">
    Part Certfile = request.getPart("fileName"); // Retrieves <input type="file" 
    name="file">
    String Certname = getFilename(Certfile); // Calls getFilename method

    InputStream Certcontent = Certfile.getInputStream();
    BufferedReader in = new BufferedReader(new InputStreamReader(Certcontent));
受保护的void doPost(HttpServletRequest请求,
HttpServletResponse)抛出ServletException,IOException{
String FirstName=request.getParameter(“fname”);//检索
String LastName=request.getParameter(“lname”);//检索
Part Certfile=request.getPart(“文件名”);//检索
字符串Certname=getFilename(Certfile);//调用getFilename方法
InputStream Certcontent=Certfile.getInputStream();
BufferedReader in=新的BufferedReader(新的InputStreamReader(Certcontent));

我找到了一个很好的解决办法,因为似乎没有人知道这个问题的解决方案

任务:需要使用包含文本字段和文件的多部分/表单数据将表单发布到3.0 servlet,所有这些都在AJAX方法中

Dojo请求方法在大多数方法上都有缺陷,有时不能与AJAX一起使用,它们需要一个新页面

解决方案:我添加了一个iframe标记,并将表单更改为以iframe为目标。已解决!

  <iframe id="uploadTrg" name="uploadTrg" height="0" width="0"></iframe>


现在,Ajax和带有文本和文件的表单正在工作。

而iframe的一切都进行得很顺利。不幸的是,我无法阅读响应正文(