HTTP API 调用拒绝接受数据字段
HTTP API call refuses to accept a data field
我正在尝试使用 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/
不要在formparams中打问号
var formparams = "username={email}&password={password}";
在 ajax 调用中将数据作为数据参数传递时,像有效的 json 一样传递。
如下所示:
{"username": "test@test.com", "access_token": "84f27d20f93b414f8b7bc3441f87c9e1", "userid": "f5067cc81c9c26dcdca468f0cdf60508"}
如 API 文档中所述 here。
我正在尝试使用 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/
不要在formparams中打问号
var formparams = "username={email}&password={password}";
在 ajax 调用中将数据作为数据参数传递时,像有效的 json 一样传递。
如下所示:
{"username": "test@test.com", "access_token": "84f27d20f93b414f8b7bc3441f87c9e1", "userid": "f5067cc81c9c26dcdca468f0cdf60508"}
如 API 文档中所述 here。