6

投稿データを追加したいファイルを含めて、ファイルをajaxlyアップロードしようとしています

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投稿データとして追加するにはどうすればよいですか?

4

2 に答える 2

8
var file = $("#file_input")[0].files[0];
//for pure javascript use
var file = document.querySelector('input[type=file]')[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);
于 2015-08-17T15:25:01.510 に答える
1

正しい新しい答え

以下の@habibutsuの答えを見てください

間違った古い答え

ファイルとフォームデータをx=y&w=zとして投稿することはできません。これらは2つの異なるコンテンツタイプです。

x = yの場合、次のようなコンテンツタイプを使用する必要があります:application / x-www-form-urlencoded

AJAXリクエストを2つに分割するか、これらのデータをURLに挿入することをお勧めします:myUrl +'query.php?x=y'。

チャオ

ウィルク

于 2012-05-14T12:37:36.830 に答える