我试图通过云代码删除文件。 但是这个脚本失败了:
Parse.Cloud.define("deleteFile1", function(request, response) {
Parse.Cloud.httpRequest({
method: 'DELETE',
url: 'https://api.parse.com/1/files/****.png',
headers: {
"X-Parse-Application-Id": "*******",
"X-Parse-REST-API-Key" : "*******"
},
success: function(httpResponse) {
console.log('Delete succeeded ' + httpResponse.text);
response.success();
},
error: function(httpResponse) {
response.error("failed");
}
});
});
错误141,脚本失败。
我称之为:
Map<String, String> map = new HashMap<String, String>();
ParseCloud.callFunctionInBackground("deleteFile1", map, new FunctionCallback<Object>() {
@Override
public void done(Object object, ParseException e) {
if(e == null){
}else{
System.out.println(e.getCode());
utils.toast_error("Couldn't delete image.. try again");
}
}
});
我已经检查了我的密钥并且它们是正确的。所以脚本本身在某种程度上是错误的。我想也许是网址。 / files假设是图像文件绑定的ParseFile吗?我试过改变&#34;请求&#34; &安培; &#34;响应&#34;到httpResponse等。但没有区别。
答案 0 :(得分:1)
更新的代码现在至少可以正常运行,您可以捕获错误。
您可以返回实际消息,方法是修改错误处理程序以返回httpResponse.text
:
error: function(httpResponse) {
response.error("failed " + httpResponse.text);
}
最初,我使用错误的X-Parse-REST-API-Key
并收到以下错误:
{
"code": 141,
"error": "failed {\"error\":\"unauthorized\"}\n"
}
确保使用 MASTER 键:X-Parse-Master-Key
。这修复了我身边的代码,运行正常。
原始代码失败,因为您在回复完成后没有致电success()
。
以下是调用/deleteFile1
时收到的JSON响应;它表明这是问题所在:
{
code: 141
error: "success/error was not called"
}
如果查看Parse Cloud Code docs,您会看到每种方法都使用response
(或代码中的httpResponse
)参数,并在有response.success()
时调用$row["password"]==$password
完成。
始终阅读Parse发回给您的回复 - 这可能有助于了解错误。
找到相关帖子的答案提示同样的事情: