我是javascript的新手,我正在尝试使用ajax来发出get请求。我想从响应中获取密码。
Javascript代码:
$(document).ready(function () {
$("#LoginUser").click(function () {
$.ajax({
url: 'http://website/api/user/Mikkel1337',
dataType: 'json',
type: 'GET',
contentType: 'application/json',
error: function () {
alert("An error had occurred");
},
success: function (data) {
var jsonStr = JSON.stringify(data);
alert(jsonStr['password']);
}
});
});
})
响应JSON代码如下所示:
{"userId":16,"firstName":"mojn","lastName":"mojn","email":"mojn@mojn.dk","accountName":"Mikkel1337","password":"123","userRoleId":1,"active":false,"userRole":null,"competetion":[],"judge":[],"team":[]}
当我运行这个时,我只得到错误功能。任何建议或解决方案表示赞赏:)
答案 0 :(得分:0)
基本上,您将JSON转换为字符串并尝试将字符串作为对象进行访问。请不要对数据进行字符串化,对于JSON为什么要使用长代码,您的代码应该是:
$(document).ready(function () {
$("#LoginUser").click(function () {
$.getJSON( "http://website/api/user/Mikkel1337", function( data ) {
// do something on success
alert(data.password);
});
});
});
干杯!!!
答案 1 :(得分:0)
不需要JSON.stringify数据简单使用
$(document).ready(function () {
$("#LoginUser").click(function () {
$.ajax({
url: 'http://website/api/user/Mikkel1337',
dataType: 'json',
type: 'GET',
contentType: 'application/json',
error: function () {
alert("An error had occurred");
},
success: function (data) {
alert(data.password);
}
});
});
})
答案 2 :(得分:0)
你应该为错误传递两个参数:function(jqXHR,exception),如下所示。
使用正确的方法检查您的API网址,可能是您的API没有显示正确的结果,并且您没有从该API获取任何数据,因此这可能是您收到错误消息的原因。
$(document).ready(function () {
$("#LoginUser").click(function () {
$.ajax({
url: 'http://website/api/user/Mikkel1337',
dataType: 'json',
type: 'GET',
contentType: 'application/json',
success: function (data) {
var jsonStr = JSON.stringify(data);
//also try this way to get JSON data:
// var jsonStr =JSON.parse(data);
alert(jsonStr['password']);
},
error: function (jqXHR, exception) {
alert("An error had occurred");
},
});
});
});