簡體   English   中英

Post Content-type undefined和application / json同時

[英]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.

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