我正在尝试发布一个对象数组,我希望帖子能像这样发布JSON
{"campaign":"ben",
"slots":[
{
"base_image": "base64 code here"
}
]
}
当我发布时,我在控制台中获取此内容
angular.js:9866 POST / ccuploader / Campaign / updateSlots 413(Payload Too Large) (匿名)@ angular.js:9866 n @ angular.js:9667 f @ angular.js:9383 (匿名)@ angular.js:13248 $ eval @ angular.js:14466 $ digest @ angular.js:14282 $ apply @ angular.js:14571 (匿名)@ angular.js:21571 dispatch @ jquery.min.js:3 r.handle @jquery.min.js:3 app.js:71失败
我不确定为什么我的帖子不起作用。有人可以指出我的错误吗?
JavaScript代码
$scope.SaveImage = function () {
$http({
url: "http://www.somesite.co.uk/ccuploader/Campaign/updateSlots",
method: "POST",
data: $.param({ 'campaign': "name", 'slots': $scope.slots }),
headers: { 'Content-Type': 'application/x-www-form-urlencoded' }
}).then(function (response) {
// success
console.log('success');
console.log("then : " + JSON.stringify(response));
}, function (response) { // optional
// failed
console.log('failed');
console.log(JSON.stringify(response));
});
};
答案 0 :(得分:0)
似乎您在POST
请求上发送了POST
字符串。
大多数网络服务器都有最大 server
限制。
您应该将POST
配置为允许较大的chunking
参数。
实现因服务器而异。
如果您的服务器使用的是PHP,请参阅此 bootswatch for bootstrap 4.0.0-alpha
如果您可以通过timeout
上传图片,效果会更好。有很多图书馆可以做到这一点。否则,您的浏览器将挂起,请求最终将multipart
。这称为multipart
上传。
您可以上传 GB 图片,而$.param
上传机制没有任何问题。
<强>更新强>
同样不使用$.param
函数只需将参数直接传递给数据对象即可。由于有效负载很重,$scope.SaveImage = function () {
$http({
url: "http://www.somesite.co.uk/ccuploader/Campaign/updateSlots",
method: "POST",
data: {
campaign: "name",
slots: $scope.slots
}),
headers: { 'Content-Type': 'application/x-www-form-urlencoded' }
}).then(function (response) {
// success
console.log('success');
console.log("then : " + JSON.stringify(response));
}, function (response) { // optional
// failed
console.log('failed');
console.log(JSON.stringify(response));
});
可能会在尝试解析请求时抛出此异常。
<script src="@Url.Content("~/Scripts/jquery.unobtrusive-ajax.min.js")" type="text/javascript"></script>