我使用自主机api并希望在另一个函数中使用来自ajax调用的数据,但它不起作用。我没有找到。
我的代码:
function checkData() {
$.ajax({
type: "GET",
url: "http://localhost:8080/api/Data"
}).success(function (result) {
var datareturned = result.stateLog;
console.log('done' + datareturned);
x = datareturned;
test(x);
});
}
setInterval(checkData, 5000);
function test(data) {
alert(data); // Here i get undefined
}
您知道我该如何使用这些数据吗?
先谢谢!
此致 陷阱
答案 0 :(得分:1)
我试试这个并且工作正常:
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
<script src="js/jquery-1.8.1.min.js"></script>
<script>
function checkData() {
$.ajax({
type: "GET",
url: "file.data.txt"
}).success(function (result) {
console.log('readed:' + JSON.stringify(result));
var datareturned = JSON.parse(result).stateLog;
console.log('done ' + datareturned);
var x = datareturned;
test(x);
});
}
setInterval(checkData, 5000);
function test(data) {
alert(data); // Here i get undefined
}
</script>
</head>
<body>
</body>
</html>
JSON DATA(file.data.txt):
{
"stateLog":"Active"
}
答案 1 :(得分:0)
但是,如果我改变代码:
{
$.ajax({
type: "GET",
url: "http://localhost:8080/api/Data",
success: function (data) {
console.log(data);
}
});}
我得到一个控制台日志(一个对象)
答案 2 :(得分:0)
您的结果对象似乎没有.stateLog属性。如果您尝试访问html响应状态,则可能需要
.success(function (result, response) {
var datareturned = result;
console.log('done' + response);
x = datareturned;
test(x);
}
或者
.success(function (result, response, jqXHR) {
var datareturned = result;
console.log('done' + jqXHR.statusCode);
x = datareturned;
test(x);
}
或类似的东西。 如果您尝试返回一个Object作为应该具有.stateLog属性的结果,那么您应该指定Ajax调用的dataType和/或确保您的服务器返回正确的格式。例如如果返回json字符串,则需要先将其解析,然后才能将其用作对象。 当然,对象需要具有所需的属性。