我正在使用Box API构建一个Web应用程序,但是我只是在根目录中创建一个文件夹时遇到了麻烦。令牌设置为应该处于活动状态的开发人员令牌。
我现在收到的错误是Bad Request
。这段代码有什么问题?我也无法为用户接收身份验证,但我决定先解决这个问题。
function createTestFolder() {
$.ajax('https://api.box.com/2.0/folders',
{
data: { name: 'CreatedFolderFromjQuery', parent: { id: '0' } },
type: 'POST',
beforeSend: function(xhr) {
xhr.setRequestHeader('Authorization', 'Bearer ' + window.token);
},
contentType: 'json',
success: function(data, status, xhr) {
alert(status);
},
error: function(xhr, status, error) { alert(error); }
});
}
编辑:当我将网址更改为https://box.com/api/1.0/folders
时,我似乎得到了成功的回复。也就是说,success
函数被调用,而不是error
函数。但是,该文件夹仍未上传到我的帐户。
编辑2:使用curl命令行并遵循API文档,我仍然收到相同的错误消息。以下是详细信息:
{"type":"error", "status":400, "code":"bad_request", "context_info":{"errors":[{"reason":"invalid_parameter", "name":"entity_body", "message":"Invalid value ''{name:New Folder,'. Entity body should be a correctly nested resource attribute name/value pair"}]}, "help_url":"http://developers.box.com/docs/#errors", "message":"Bad Request", "request_id":"128521198353f4fc831c7e6"}
curl: (6) Could not resolve host: parent
curl: (3) [globbing] unmatched brace in column 1
curl: (3) [globbing] unmatched close brace/bracket in column 2
答案 0 :(得分:2)
data: { name: 'CreatedFolderFromjQuery', parent: { id: '0' } },
使用jQuery的AJAX API,data
需要是一个字符串。我需要将我的POST数据序列化为JSON:
data: JSON.stringify({ name: 'CreatedFolderFromjQuery', parent: { id: '0' } }),
一旦我意识到这一点,并添加了JSON.stringify()
请求已正确发送。