HTTP API调用拒绝接受数据字段

时间:2015-02-27 05:16:59

标签: javascript winjs

我正在尝试使用JavaScript(WinJS)为Windows构建Simplenote客户端,并使用HTTP Simperium API进行连接。但是,我遇到了一个连接的简单问题。从我在互联网上找到的东西和我之前的理解,我认为我没有以正确的格式传递数据,但我没有看到我出错的地方。以下是我的代码:

function button1Click(mouseEvent) {
    var app_id = 'chalk-bump-f49';
    var formparams = "?username={email}&password={password}";

    WinJS.xhr({
        url: "https://auth.simperium.com/1/" + app_id + "/authorize/",
        type: "POST",
        headers: { "X-Simperium-API-Key": "{key}"},
        data: formparams
    }).then(function (result) {
        var data = result.responseText;
        console.log(data);
    }, function (error) {
        var er = error.responseText;
        console.log(er);
    }, function (progress) {
        var data = progress.responseText;
    });
}

JavaScript控制台说明以下内容:{"field": "username", "message": "This field is required"}

我无法理解为什么它说该字段是必需的,因为我填写了用户名的值。我也尝试将data: formparams更改为data: {username: "email", password: "password"},但收到了相同的错误消息。

供参考,我使用以下API文档:https://simperium.com/docs/reference/http/

2 个答案:

答案 0 :(得分:1)

不要在formparams中加问号 var formparams =“username = {email}& password = {password}”;

答案 1 :(得分:0)

在ajax调用中作为数据参数传递数据时,像有效的json一样传递。

如下所示:

{"username": "test@test.com", "access_token": "84f27d20f93b414f8b7bc3441f87c9e1", "userid": "f5067cc81c9c26dcdca468f0cdf60508"}

如API文档here中所述。