我正在尝试更新配置文件图片,该图片在本地服务器上运行,但不在远程服务器上运行,
在最后一个我收到Http 411
回复
function imageReceived(imageURI) { // this is done after taking a picture
var options = new FileUploadOptions();
options.fileName = 'profilePic.jpg';
options.headers = {Authorization: 'Token token=' + profile.accessToken};
var ft = new FileTransfer();
ft.upload(imageURI,
url("/api/v1/update_avatar"), // url() is a function that returns the full path
function(result) {
alert(result);
},
function(error) {
alert( JSON.stringify(error));
},
options);
}
PS:
profile
是我已经拥有的一个类,而accessToken具有正确的值我做错了什么或错过了什么?
任何帮助都将非常感谢!!
答案 0 :(得分:1)
您必须在请求中发送Content-Length
标头。
来自http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html:
411 Length Required
The server refuses to accept the request without a defined Content- Length. The client MAY repeat the request if it adds a valid Content-Length header field containing the length of the message-body in the request message.
答案 1 :(得分:0)
您必须与托管公司进行讨论,正如this post所述。
Web服务器(运行Web站点)认为HTTP数据流 由客户端发送(例如您的Web浏览器或我们的CheckUpDown机器人) 应该包含一个内容长度'规格。这通常是 仅用于导致数据放置的HTTP方法 Web服务器,而不是从中检索数据。
修复411错误 - 一般
这种错误在大多数网络流量中很少发生,特别是在 客户端系统是一个Web浏览器。这个问题只能通过解决 检查你的客户端系统正在尝试做什么,然后讨论 你的ISP为什么Web服务器需要一个' Content-Length'说明书