![](/img/trans.png)
[英]npm request send token and header 'content-type': 'application/json' at the same time
[英]Post Content-Type undefined and application/json at the same time
我正在嘗試上傳文件並同時發布一些數據。 topicSelected的值是java腳本對象數組。 當我檢入c#控制器時,topicSelected的值為null。 當我檢查我的服務中的值時,一切正常。 我認為問題是我沒有指定application / json類型。
setNewVideoRecord = function(file, videoName, videoVersion, topicSelected) {
console.log(topicSelected);
var self = this;
var formData = new FormData();
formData.append('file', file);
formData.append('videoName', videoName);
formData.append('videoVersion', videoVersion);
formData.append('topicSelected', topicSelected);
$http.post(self.baseUrl + "Admin/uploadVideoFile", formData, {
withCredentials: true,
headers: {
'Content-Type': undefined
},
transformRequest: angular.identity
}).then(function onSuccess(response) {
self.fileNameUpload = null;
})
}
您沒有未定義的內容類型。 告訴你的圖書館Content-Type是未定義的,只是停止嘗試設置自己的默認值,讓底層的XMLHttpRequest對象為自己找出它。 由於您傳遞的是FormData對象,因此它會檢查它以識別正確的內容類型( multipart/mixed
)。
這會將每個數據(包括您上傳的文件)編碼為一個單獨的部分,每個部分都會自動設置自己的內容類型。
您無法使XHR將非文件數據編碼為JSON。 它將使用標准的多部分格式,每個非文件輸入都有一個單獨的部分(文件的另一部分)。
您需要編寫服務器端代碼以期望該格式而不是JSON。
由於topicSelected
是一個復雜的數據結構(而不是字符串),因此您可以在將其附加到表單數據對象之前通過JSON.stringify()
運行它。
閱讀topicSelected
字符串后,您可以從服務器上的JSON解析它。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.