簡體   English   中英

使用jQuery使用multipart / form-data進行HTTP POST調用?

[英]Making an HTTP POST call with multipart/form-data using jQuery?

我正在嘗試使用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);
          }
});

它不起作用。 Firebug返回未定義的錯誤,返回的XMLHttpRequst對象multipart字段設置為false。

我可以做些什么來使用jQuery工作? 如果不可能有一個簡單的實現這個?

即idon't不需要傳輸文件,只需要一些數據。 但服務器需要multipart。

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經常與上傳文件相關聯。 如果是這種情況,您可以查看jquery表單插件 ,它允許您ajaxify表單並支持文件上傳

使用FormData(),您可以通過ajax請求上傳文件。

有關詳細信息,請參閱此鏈接: FormData

關於使用FormData的教程教程

這種方式有效:

$( "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 );  
    }  
});  

http://www.bennadel.com/blog/1273-Setting-Form-EncType-Dynamically-To-Multipart-Form-Data-In-IE-Internet-Explorer-.htm

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM