【发布时间】:2020-06-17 00:21:31
【问题描述】:
我在使用 AJAX 遵循 API 指南时遇到了问题。我已成功从登录 api 获取会话令牌,因为需要会话令牌来请求 GET/POST 数据。
获取会话令牌的代码:
var sessionToken = null;
$.ajax({
url: '<API-URL>/1/json/user_login/',
data: {
'login_name' : 'USERNAME',
'password' : 'PASSWORD'
},
type: 'GET',
dataType: 'json',
success: function(data) {
sessionToken = data.response.properties.session_token;
$("#result").text("Got the token: " + sessionToken);
},
error: function(err) { console.log(err); },
beforeSend: setHeader
});
function setHeader(xhr) {
xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
}
成功后,我们得到会话令牌:D67ABD0454EB49508EAB343EE11191CB4389255465
{response: {…}}
response:
properties:
action_name: "user_login"
data: [{…}]
action_value: "0"
description: ""
session_token: "D67ABD0454EB49508EAB343EE11191CB4389255465"
__proto__: Object
__proto__: Object
__proto__: Object
现在我有了一个有效的会话令牌,我现在可以请求获取数据了。我正在尝试使用以下代码获取驱动程序数据:
$.ajax({
url: '<API-URL>/1/json/api_get_data/',
data: {
'license_nmbr' : vrn,
'session_token' : sessionToken
},
type: 'POST',
//dataType: 'json',
success: function(data) {
//var obj = JSON.parse(data);
console.log(data);
},
error: function(err) { console.log(err); },
beforeSend: setHeader
});
根据文档,我需要使用 POST 而不是 GET 以便在响应中获取车辆详细信息并将会话令牌作为参数传递:
不幸的是,使用 GET 时似乎返回空白数据,而使用 POST 时,权限被拒绝。我尝试将参数作为文档发送为数组,但也失败了。我尝试将会话令牌作为授权传递,但仍然没有得到响应。
我从 API 支持团队得到的唯一帮助是:“POST 不能在端点上使用参数查询。”
我做错了什么?
感谢任何帮助。谢谢!
【问题讨论】:
-
我想你只是传入了
$.ajax({ data: {} })两个参数,但是你需要用请求示例图像中提供的所有变量来填充它。 -
我会试一试,看看会发生什么,干杯
-
很遗憾没有成功
标签: javascript jquery rest api