无法使用jQuery在Box.com中创建文件夹?

时间:2014-08-20 18:44:48

标签: javascript jquery box-api boxapiv2

我正在使用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

1 个答案:

答案 0 :(得分:2)

啊,我已经解决了自己的问题。我不熟悉jQuery,这是我的错误:

data: { name: 'CreatedFolderFromjQuery', parent: { id: '0' } },

使用jQuery的AJAX API,data需要是一个字符串。我需要将我的POST数据序列化为JSON:

data: JSON.stringify({ name: 'CreatedFolderFromjQuery', parent: { id: '0' } }),

一旦我意识到这一点,并添加了JSON.stringify()请求已正确发送。