通过Ajax表单发送数据

时间:2013-02-07 17:59:41

标签: javascript ajax jquery

我有一张表格 我通过Ajax将它发送到每个参数 但是不要发送表单数据。 我的问题是如何通过ajax发送表单数据

html代码:

<from action="" method="post" enctype="multipart/form-data">
   <input type = "file" name = "adrfile" />
   <input type = "button" value="Upload" onclick="javascript: upload();" />
</form>

2 个答案:

答案 0 :(得分:2)

使用传统上被认为是AJAX的XmlHttpRequest对象无法完成文件上传。大多数人在尝试创建和异步文件上传时采用的方法是提交表单并定位iframe。我建议使用像Uploadify这样的javascript库。

还有很多JQuery插件可以帮助你解决这个问题。快速谷歌搜索应该给你很多选择。

答案 1 :(得分:1)

如果您想要头疼,可以为各种浏览器做好准备 - 即最新版本的Firefox,IE,Safari和Opera。

需要JS summat中的代码(其中obj是input type="file"项的对象:

function DoReadFile(obj)
  {
    if (obj.files)
    {
      // Sensible browers
      if (1 == obj.files.length)
      {
        var file = obj.files[0];
        try {
          return obj.files[0].getAsBinary();
        }
        catch (error)
        {
           // Blank
        }
      }
    }
    else
    {
      // IE
      try
      {
        var fileSystem = new ActiveXObject("Scripting.FileSystemObject");
        var fileHandle = fileSystem.OpenTextFile(obj.value, 1);
        var contents = contents.ReadAll();
        contents.Close();
        return contents;
      }
      catch (error)
      {
        // Blank
      }
    }
    throw "Cannot read file";
  }

然后你可以让JS加密数据(base 64等)并将其与其他东西一起发送作为帖子。但它不能是一个多部分形式。

但这有点浪费时间。