我以前曾問過類似的情況,但這裏有些微不同的情況和更多細節。如何使用angularJS發送多部分/表單數據的POST請求?
我有在其上接受的multipart/form-data的POST請求服務器側的處理程序。請求包含POST參數數量和一個應包含圖像文件的參數(最後一個參數可能存在或可能不存在)。如何使用angularJS發送這樣的請求?
我試過的選項數(所有的人都因爲知道沒有文件上傳),但他們沒有工作。我得到了錯誤的結果,因爲HTTP請求中沒有Content-Type:multipart/form-data,或者從基於Jetty的Spark Web服務工具中得到異常(請不要混淆Apache Spark),這聽起來像是「。 .. 「缺少初始的多部分邊界...」 - 根據請求細節
我已經試過這樣:
return $http({
method: 'POST',
url: editCompanyUrl,
headers: {'Content-Type': 'multipart/form-data'},
data: {
token: token,
userId: userId,
companyId: companyId,
companyName: $scope.companyName,
},
timeout: 500
}).then(function (data) {
console.log(data);
//Store Company ID which is used for saving purposes
//localStorage.setItem("companyId", data.data.Company.id);
return data.data.Company;
}, function (data) {
console.log(data);
})
這對於例如
return $http({
method: 'POST',
url: editCompanyUrl,
headers: {'Content-Type': undefined},
data: {
token: token,
userId: userId,
companyId: companyId,
companyName: $scope.companyName,
},
timeout: 500
}).then(function (data) {
console.log(data);
//Store Company ID which is used for saving purposes
//localStorage.setItem("companyId", data.data.Company.id);
return data.data.Company;
}, function (data) {
console.log(data);
})
可否請你。幫助?發送多部分請求的正確方式是什麼?
謝謝。
親切的問候,阿爾喬姆。
嗨薩科!感謝您的回答,但是如何添加對multipart/form-data的支持?有時(取決於代碼的變化)在POST之前還有一個額外的OPTIONS請求(據我所知它與CORS有關) - 如何避免它?謝謝。 –
嘿@ArtemVorobyev,首先,它現在在工作嗎?然後,選項是如何跨源資源共享標準要求瀏覽器的行爲,這不是一個錯誤:)!你想避免它什麼? – Nicolas2bert