相关疑难解决方法(0)

XMLHttpRequest POST multipart/form-data

我想在JavaScript中使用XMLHttpRequest来POST一个包含文件类型输入元素的表单,这样我就可以避免页面刷新并获得有用的XML.

我可以在没有页面刷新的情况下提交表单,使用JavaScript将表单上的目标属性设置为MSIE的iframe或Mozilla的对象,但这有两个问题.小问题是目标不符合W3C(这就是为什么我在JavaScript中设置它,而不是在XHTML中设置它).主要问题是onload事件不会触发,至少不会触发OS X Leopard上的Mozilla.此外,XMLHttpRequest会产生更漂亮的响应代码,因为返回的数据可能是XML,而不是像iframe那样仅限于XHTML.

提交表单会产生如下HTTP的HTTP:

Content-Type: multipart/form-data;boundary=<boundary string>
Content-Length: <length>
--<boundary string>
Content-Disposition: form-data, name="<input element name>"

<input element value>
--<boundary string>
Content-Disposition: form-data, name=<input element name>"; filename="<input element value>"
Content-Type: application/octet-stream

<element body>
Run Code Online (Sandbox Code Playgroud)

如何获取XMLHttpRequest对象的send方法来复制上述HTTP流?

javascript ajax xmlhttprequest

20
推荐指数
2
解决办法
6万
查看次数

使用jQuery使用multipart/form-data进行HTTP POST调用?

我正在尝试使用jQuery使用multipart/form-data进行HTTP POST调用:

$.ajax({
  url: 'http://localhost:8080/dcs/rest',
  type: 'POST',
  contentType:'multipart/form-data',
  data: 'dcs.source=boss-web&query=data&dcs.algorithm=lingo&dcs.output.format=JSON&dcs.clusters.only=true', 
  //dataType: "jsonP",
  success: function(jsonData) {alert('POST alert'); data=jsonData ; },
  error : function(XMLHttpRequest, textStatus, errorThrown) {
            console.log('An Ajax error was thrown.');
            console.log(XMLHttpRequest);
            console.log(textStatus);
            console.log(errorThrown);
          }
});
Run Code Online (Sandbox Code Playgroud)

它不起作用.Firebug返回未定义的错误,返回的XMLHttpRequst对象multipart字段设置为false.

我可以做些什么来使用jQuery工作?如果不可能有一个简单的实现这个?

即idon't不需要传输文件,只需要一些数据.但服务器需要multipart.

javascript jquery post http multipart

16
推荐指数
1
解决办法
5万
查看次数

标签 统计

javascript ×2

ajax ×1

http ×1

jquery ×1

multipart ×1

post ×1

xmlhttprequest ×1