gpt4 book ai didi

javascript - 为什么 Angular 仍然将请求编码为 JSON? ( $http, $httpParamSerializerJQLike )

转载 作者:可可西里 更新时间:2023-11-01 15:29:32 25 4
gpt4 key购买 nike

我想在 默认情况下 发出 x-www-form-urlencoded 请求。不是 JSON。

Angular 1.4.5

这行不通。

 angular.module('APP').config(['$httpProvider', function ($httpProvider) {
$httpProvider.defaults.headers.put['Content-Type'] = 'application/x-www-form-urlencoded';
$httpProvider.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded';
$httpProvider.defaults.paramSerializer = '$httpParamSerializerJQLike';
}]);

即使我在之后添加:

angular.module('APP').run(['$http', '$httpParamSerializerJQLike', function($http, $httpParamSerializerJQLike) {
$http.defaults.paramSerializer = $httpParamSerializerJQLike;
}]);

但是当我在发出请求时直接在服务/ Controller 中使用它时有效。作为:

$http.post('/auth', $httpParamSerializerJQLike({email: email, pwd: pwd}))
.then(...

现在我使用这个拦截器:(糟糕的代码,错误的方式,但按我的意愿工作)

angular.module('APP').factory('ApiInterceptor', ['$q', '$httpParamSerializerJQLike',
function($q, $httpParamSerializerJQLike){
return {
request: function (config) {
$rootScope.loading = true;
if (config.method === "POST"){
if (config.data === undefined) config.data = {};
config.data = $httpParamSerializerJQLike(config.data);
}
return config || $q.when(config);
}
};
}]);

我如何配置整个应用程序以在没有自行车的情况下使用 x-www-form-urlencoded 作为 $.param 拦截器等。

最佳答案

defaults.paramSerializer 仅用于 URL 构建,而不是 POST 正文,defaults.transformRequest 就是您要找的

关于javascript - 为什么 Angular 仍然将请求编码为 JSON? ( $http, $httpParamSerializerJQLike ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32320267/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com