正如您可以从标题中看到问题。 这是我的工作:
发送
之类的请求$.ajax({
type: "POST",
url: "http://www.example.com/api/",
data: {
'data': '1',
'beacon': 'fried'
},
complete: function(res) {
//need help here...
}
});
API确实回应。
如果我做document.forms["myform"].submit();
页面显示了像
{
"data": [{
"Chief": "Max",
"temperature": "65",
"done": "yes",
"cost": 24
}]
}
那么我应该如何解析(检查,显示值)?试过很多方法。
任何帮助将不胜感激!
P.S。使用jquery-3.2.1.min.js
答案 0 :(得分:4)
您可以在请求属性中将dataType设置为JSON:
$.ajax({
type: "POST",
url: "http://www.example.com/api/",
data: {'data': '1', 'beacon': 'fried'},
dataType: 'JSON',
complete: function (res) {
console.log(res); // will be decoded
// acces your values like this :
var data = res.responceText.data[0];
alert(data.Chief);
}
});
修改强>
添加了如何访问特定数据。
答案 1 :(得分:2)
你应该使用
JSON.parse()来
当您在json数据中有数组时,可以将其作为res.data [0] .cost或res.data [0] [" cost"]
进行访问答案 2 :(得分:1)
如果需要,请使用JSON.parse()
,否则您可以从res.data
答案 3 :(得分:1)
尝试JSON.parse()
$.ajax({
type: "POST",
url: "http://www.example.com/api/",
data: {'data': '1', 'beacon': 'fried'},
complete: function (res) {
var arr = JSON.parse(res).data;
arr.forEach(function(obj) {
var cost = obj.cost || null,
Chief = obj.Chief || null,
temperature = obj.temperature || null,
done = obj.done || null;
console.log('Cost: ' + cost + ', Chief: ' + Chief + ', Temperature:' + temperature + ', Done: ' + done);
});
}
});
答案 4 :(得分:1)
您可以使用JSON.parse()
$.ajax({
type: "POST",
url: "http://www.example.com/api/",
data: {'data': '1', 'beacon': 'fried'},
complete: function (res) {
var response = JSON.parse(res);
}
});
答案 5 :(得分:-1)
第一个问题是它不允许来自不同域的响应,所以我将所有代码转移到api所在的同一服务器。
现在这段代码有效:
$.ajax({
type: "POST",
url: "../api/",
data: {'data': '1', 'beacon': 'fried'},
dataType: 'JSON',
complete: function (res) {
console.log(res);
var r = JSON.parse(res.responseText);
console.log(r.data[0].Chief); //retrieved Alex, that is response from the server
}
});
全部谢谢!