如何在AngularJS中选择内容类型

时间:2016-10-27 08:27:53

标签: angularjs file post undefined

当在AngularJS中使用帖子时,内容类型总是让我困惑。 内容类型:

  1. urlencoded的
  2. 未定义
  3. ...

    $http({
        headers: {'Content-Type': undefined},
        processData: false,
        method: 'POST',
        cache: false,
        url: sendUrl,
        data: sendObj,
        transformRequest: function (data, headersGetterFunction) {
            return data; // do nothing! FormData is very good!
        }
    })
    
  4. 我使用文件对象发布JSON数据。

    我发现内容类型必须设置为undefined。这是some clue。但我不知道为什么必须设置为undefined。

1 个答案:

答案 0 :(得分:1)

您需要将内容类型设置为undefined,以便浏览器自己生成一个。文件上传需要多部分请求,并且需要部件之间的边界。因此,生成的Content-Type标题如下所示:

Content-Type=multipart/form-data; boundary=---------------------------99614912995

请注意boundary=。该值由浏览器生成,您无法自行设置。

您需要设置transformRequest的原因是Angular会将您的数据作为JSON发送,因为这是默认转换。但你可以缩短它:

transformRequest: angular.identity,