使用XMLHttpRequest发送带有数据的文件

时间:2012-05-14 12:19:53

标签: javascript xmlhttprequest

我正在尝试ajaxlly上传文件,包括我想用它添加帖子数据

var xhr = this._xhrs[id] = new XMLHttpRequest();
var queryString = qq.obj2url(params, this._options.action);
        xhr.open("POST", queryString, true);
        xhr.setRequestHeader("X-Requested-With", "XMLHttpRequest");
        xhr.setRequestHeader("X-File-Name", encodeURIComponent(name));
        xhr.setRequestHeader("Content-Type", "application/octet-stream");
        xhr.send(file);

如何添加x=y作为帖子数据?

2 个答案:

答案 0 :(得分:3)

您无法将表单数据发布为x = y& w = z。 它们是两种不同的内容类型。

对于x = y,你应该使用这样的内容类型:application / x-www-form-urlencoded

我建议您将两个不同的AJAX请求拆分或将这些数据插入url:myUrl +'query.php?x = y'。

威尔克

答案 1 :(得分:2)

var file = $("#file_input")[0].files[0];

var formData = new FormData();
formData.append("myfile", file);
formData.append("text_unput", "Hello");

var xhr = new XMLHttpRequest();
xhr.open('POST', '/url', true);
xhr.send(formData);