JQueryを使用して、HTTP POST multipart/form-dataで呼び出します:
$.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);
}
});
動かない。 Firebugは未定義のエラーを返し、返されたXMLHttpRequst
オブジェクトマルチパートフィールドはfalseに設定されます。
これをjQueryで機能させるにはどうすればよいですか?そしてそれが不可能な場合、これを達成する簡単な方法はありますか?
つまり、ファイルを転送する必要はなく、一部のデータのみを転送します。ただし、サーバーにはマルチパートが必要です。
multipart/form-data
は次のようには見えません。
dcs.source=boss-web&query=data&dcs.algorithm=lingo&dcs.output.format=JSON&dcs.clusters.only=true
これは application/x-www-form-urlencoded
。
これが 例 の方法ですmultipart/form-data
リクエストは次のようになります。そして、関連 RFC 1867 。
multipart/form-data
は、ファイルのアップロードに頻繁に関連付けられています。これがあなたのケースである場合は、フォームをajax化できる jquery form plugin と supports file uploads も確認してください。
このように動作します:
$( "form#upload-form" )
.attr( "enctype", "multipart/form-data" )
.attr( "encoding", "multipart/form-data" );
$.ajax({
type: "POST",
contentType:attr( "enctype", "multipart/form-data" ),
url: "/adm/oferta_insert",
data: dados,
success: function( data ) {
alert( data );
}
});