我有这个非常奇怪的问题。我有一个非常长的字符串作为应用程序的标记。当我在做http post请求时,字符串会发生变化。
从“Vow == 256220”的结尾变为“誓言:= 256220”,我不明白为什么。
以下是帮助代码:
var request = $http({
method: "post",
url: urlWS,
data: {token: token},0
headers: { 'Content-Type': 'application/x-www-form-urlencoded' }
});
request.success(function (data) {
alert(data);
});
答案 0 :(得分:1)
以下代码为我工作。
$http({
method: "post",
url: urlWS,
data: 'token='+encodeURIComponent("Vow== 256220"),
headers: { 'Content-Type': 'application/x-www-form-urlencoded' }
});
request.success(function (data) {
alert(data);
});
可能是以上解决方案解决您的问题。
答案 1 :(得分:0)
您必须在主模块配置功能中配置$httpProvider
。这是通过transformRequest
方法完成的,首先添加您添加的默认标头,然后转换请求。
将以下代码添加到主配置功能模块:
$httpProvider.defaults.headers.common['X-Requested-With'] = 'XMLHttpRequest';
// post headers
$httpProvider.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded;charset=utf-8';
$httpProvider.defaults.transformRequest = [function(data) {
return angular.isObject(data) && String(data) !== '[object File]' ? $.param(data) : data;
}];
我希望它有所帮助;)