我正在为下面的帖子调用设置边界,但是在chrome上,边界看起来与我设置的边界不同。如何让我的自定义边界“--test”显示在请求有效负载上?
var url = '/site/apkUpload';
var deferred = $q.defer();
console.log(formdata);
$http.post(url, formdata, {
processData: false,
headers: {'Content-Type': "multipart/form-data; charset=utf-8; boundary='--test'",
'Accept': "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8",
'x-access-token': token,
'cache-control': 'max-age=0'}
})
.success(function (response) {
deferred.resolve(response);
})
.error(function (reject) {
deferred.reject(reject);
});
return deferred.promise;
请求chrome上的有效负载:
------ WebKitFormBoundaryB5LjM2a6Qly3Xruj 内容处理:表格数据; NAME = “软件包名”
helo1 ------ WebKitFormBoundaryB5LjM2a6Qly3Xruj 内容处理:表格数据;名称= “名称”
...
非常感谢!
答案 0 :(得分:0)
我可以用两种方式解释你的问题:
如果您只想在内容标题中添加自定义多部分边界,则可以通过在配置对象中添加tranformRequest函数来实现:
var url = '/site/apkUpload';
var deferred = $q.defer();
console.log(formdata);
$http.post(url, formdata, {
processData: false,
transformRequest: function (data, headers) {
var boundary = yourCustomLogic();
headers()['Content-Type'] = 'multipart/form-data;charset=utf-
8;boundary=' + boundary;
},
'Accept': ...,
'x-access-token': token,
'cache-control': 'max-age=0'
})
.success( function () {...});