第一次使用API.尝试登录,但使用jquery/ajax而不是python.最初的API是Python.我该怎么做



我尝试使用的API如下:https://docs.juungle.net/

我已经在该网站上有了一个帐户。

我正在尝试验证:https://docs.juungle.net/2-endpoints/authentication.html

正如您所看到的,代码显示了一个卷曲:

curl -X POST https://www.juungle.net/api/v1/user/login 
--data '{
"username": "my-username",
"password": "my-password"
}'

我尝试了以下尝试将其转换为jquery和ajax:

var credentials = '{"email": "email","password":"password"}';


function login()
{
$.getJSON("https://www.juungle.net/api/v1/user/login", credentials, function(data)
{
alert(JSON.stringify(data));
});
}
var credentials = '{"email": "email","password":"password"}';


function login()
{
$.ajax(
{
url: "https://www.juungle.net/api/v1/user/login",
type: 'POST',
datatype: 'json',
data: credentials,
success: function(data)
{
alert(JSON.stringify(data));
},
error: function()
{
alert("Cannot login.");
}
})
}

第一个片段给我一个404消息,而第二个片段给了我一个422错误代码。如果我在API网站中使用我的真实凭证运行curl,它会返回我的jwt,但我需要能够将其集成到我的JavaScript应用程序中。我在这里做错了什么?

编辑:我还尝试了以下代码:

var credentials = '{"email": "my-email","password":"my-password"}';
function login()
{
var url = "https://www.juungle.net/api/v1/user/login";
var xhr = new XMLHttpRequest();
xhr.open("POST", url);
xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
xhr.onreadystatechange = function () {
if (xhr.readyState === 4) {
console.log(xhr.status);
console.log(xhr.responseText);
}};
var data = credentials;
xhr.send(data);
}

遗憾的是,即使在使用了我的实际电子邮件和密码后,它也抛出了一个422错误:

{"email":{"message":"The email field is mandatory.","rule":"required"},"password":{"message":"The password field is mandatory.","rule":"required"}}

编辑:修复了代码中一个令人困惑的部分,我把东西放在括号里,除了混淆读者之外,没有引起任何问题。

最终工作的代码只是对我在一次问题编辑中发布的最后一个代码示例的轻微修改。内容类型:

var credentials = '{"email": "my-email","password":"my-password"}';

function login()
{   
var url = "https://www.juungle.net/api/v1/user/login";
var xhr = new XMLHttpRequest();
xhr.open("POST", url);

xhr.setRequestHeader("Content-Type", "application/json");

xhr.onreadystatechange = function () {
if (xhr.readyState === 4) {
console.log(xhr.status);
console.log(xhr.responseText);
}};

var data = credentials;

xhr.send(data);

}

编辑:这个代码也有效!感谢用户:15527686 Derăng khoa-Der inh的帮助!

var credentials = '{"email": "my-email","password":"my-password"}';

function login()
{                  
$.ajax(
{
url: "https://www.juungle.net/api/v1/user/login",
type: 'POST',
contentType: "application/json",
charset: "utf-8",
datatype: 'json',
data: credentials,
success: function(data)
{
alert(JSON.stringify(data));
},
error: function()
{
alert("Cannot login.");
}
})


}

最新更新