我尝试了几种jQuery ajax。 $.ajax , $.getJSON & $.get
在Chrome中运行良好。
但是在Firefox或IE中都无效。我正在从同一目录中读取json文件。
json起源于desk.com的api。我正在使用php& cURL to grab&保存json。
在$.ajax
我也试过定义dataType
Firebug没有错误。
console.log在firebug中返回ajax,它返回一个包含所有json数据但不显示到页面的Object。
警告它时会给出[object Object]
JS:
function getDesk($group_number)
{
now = Date();
unixTimeMS = Date.parse(now);
var tempHtml = '<table class="table table-bordered" id="desk_data_table">'+
'<thead style="background-color:#eee">'+
'<tr>'+
'<th>Available</th>'+
'<th>Name</th>'+
'<th>Created</th>'+
'<th>Updated</th>'+
'<th>Current login</th>'+
'<th>Last login</th>'+
'</tr>'+
'</thead>'+
'<tbody id="desk_data_table_body">';
$url = $group_number + ".json";
$.get( $url, function( resp ) {
$.each( resp['_embedded']['entries'], function( key, value ) {
updated = value['updated_at'].replace(/[TZ+]/g, " ");
updatedKeep = value['updated_at'].replace(/[TZ+]/g, " ");
updated = Date.parse(updated);
difference = unixTimeMS - updated;
if(difference < 604800000){
lastLogin = value['last_login_at'].replace(/[TZ+]/g, " ");
created = value['created_at'].replace(/[TZ+]/g, " ");
updated = value['updated_at'].replace(/[TZ+]/g, " ");
current = value['current_login_at'].replace(/[TZ+]/g, " ");
if(value.available == true){
tempHtml += "<tr style='background-color:#9de7a2;'><td >" + value['available'] + "</td>";
} else {
tempHtml += "<tr style='background-color:#f0a0a0;'><td >" + value['available'] + "</td>";
}
tempHtml += "<td nowrap='nowrap'> " +value['name']+"</td>";
tempHtml += "<td nowrap='nowrap'> " + created + "</td>";
tempHtml += "<td nowrap='nowrap'> " + updatedKeep + "</td>";
tempHtml += "<td nowrap='nowrap'> " + current + "</td>";
tempHtml += "<td nowrap='nowrap'> " + lastLogin + "</td></tr>";
}
else{ false; }
});
tempHtml += "</tbody></table>";
$('#' + $group_number).html(tempHtml);
});
}
getDesk(491244);
网页:
<div id="491244"></div>
THE JSON [filename = 491244.json]
{
"_embedded": {
"entries": [
{
"avatar": "http://www.gravatar.com/avatar/26536",
"available": false,
"created_at": "2014-04-08T19:10:41Z",
"current_login_at": "2015-10-21T14:21:27Z",
"email": "Matthew.Jamison@email.com",
"email_verified": true,
"id": 21912353,
"last_login_at": "2015-10-19T20:50:22Z",
"level": "siteadmin",
"name": "Matt Jamison",
"public_name": "Matt Jamison",
"updated_at": "2015-10-21T14:21:27Z"
}
]
}
}
答案 0 :(得分:2)
如果您希望自动解析JSON,则应使用$.getJSON
。 resp[_embedded][entries]
应为resp._embedded.entries
或resp [&#34; _embedded&#34;] [&#34;条目&#34;]。当您不引用名称时,它会将它们用作变量,但它们没有值。
答案 1 :(得分:1)
可能是因为条件
if(difference < 604800000){
由于日期对象和当前时间milles的不一致性而变化。
通过调试检查一下,或者暂时解决这个问题。