10

FormDataを使用してXmlHttpRequestを投稿しているときに、ヘッダーに境界を正しく設定しようとしています。

xhr.open("POST",url);
xhr.setRequestHeader("Content-type","multipart/form-data; boundary=...");

var formData = new FormData();
formData.append("filename", inputId.files[0]);
formData.append(...);

xhr.send(formData);

ここでリクエストヘッダーに境界を設定するにはどうすればよいですか。リクエストが設定されているのを見ましたが、リクエストに境界が作成されています。しかし、サーバーはそれをどのように解釈するかを知りません。

4

2 に答える 2

23

ES法

Content-Typeヘッダーを手動で設定しないでください。ブラウザは、「multipart / form-data; border=...」の値を自動的に設定します。


jQueryメソッド

jQueryを使用している場合は、contentTypeオプションをfalseに設定します。

$.ajax({
    url: url,
    type: 'POST',
    data: formData,
    processData: false,
    contentType: false
});
于 2012-11-19T13:04:24.983 に答える
2

これを見てみてください、ajax(jqueryなし)でmultipart / form-dataフォームコンテンツを送信する方法は?PHPを受信者としてこのスクリプトを使用しようとしていますが、警告の結果が混在するという問題があります。私の問題は、スクリプトの両端をハッキングしすぎて機能しなくなったことだと思います。

他の投稿者による「JQueryを使用している場合」のコメントについては、JQueryで働いていない人には役に立たず、JQがすべてではないということだけです。スクリプトの。

于 2013-10-30T22:53:18.380 に答える