尝试在查询参数中为图像发送base64字符串,并获取400 Bad Request。 尝试以下方法: -
关于堆栈溢出已经过了这个问题。 根据这个,chrome可以在URL中拥有比我发送的更多字符imageBytes(29527个字符),
What is the maximum possible length of a query string ?
以下问题中的说明也没有帮助
Passing base64 encoded strings in URL ?
这是我的代码
如果我发送一个类似于“某事”的硬编码字符串代替form.imageBytes
,它的工作正常$scope.submit = function(){
var form = {};
form.name = document.getElementById("recipient-name").value;
form.desc = document.getElementById("message-text").value;
form.owner = document.getElementById("message-text2").value;
form.imageBytes = $scope.asdf;
var data = JSON.stringify(form);
debugger;
var postString = "http://cos1plp:7030/tcw/interestgroup/addInterestGroups?name="+form.name+"&desc="+form.desc+"&owner="+form.owner+"&imageBytes="+form.imageBytes;
$http.post(postString)
.success(function (data, status, headers, config) {
$scope.headers = headers();
console.log('Response Headers:' + headers());
})
.error(function (data, status, headers, config) {
$scope.headers = headers();
});
}
答案 0 :(得分:0)
Base64字符串可以包含特殊字符,即+ / =
符号。您需要将它们编码为有效的url字符串。尝试将其添加到您的代码中:
data = data.replace(/\+/g, '%2B');
data = data.replace(/\//g, '%2F');
data = data.replace(/\=/g, '%3D');