我正在尝试使用AJAX从我的数据库中获取数据。我的Laravel Controller在JSON响应中返回字符串。但是我的AJAX有时会工作,有时候不行。当Ajax不工作时我得到“内部服务器错误”我的意思是当数据未加载时。但问题不会发生在safari浏览器中。这是我的AJAX代码。
$(function(){
var checking_html = '<img src="img/loader.gif" />';
$("#bond").change(function () {
$('#load').html(checking_html);
var x = $('#bond').val();
$.ajax({
type: 'POST',
url: "{{ URL::route('bond.list') }}",
data: {
'_token': $('input[name=_token]').val(),
'x': x
},
success: function(response) {
if(response[0]['bond_num'] == 400000){
response[0]['bond_num']='Premium';
}
html_output = '';
for(i=0; i<response.length; i++){
html_output += '<option value="'+response[i]['publish_date']+'">'+response[i]['publish_date']+' , '+response[0]['bond_num']+' Bond</option>';
if(i==0){
html_output += '<option value="all">ALL</option>';
}
}
$('#choice').empty().append(html_output);
$('#load').html('');
},
error: function (jqXHR, textStatus, errorThrown){
alert('Error get data from ajax');
}
});
});
});
答案 0 :(得分:0)
你需要JSON.parse()你的结果:
$.ajax({
type: 'GET',
url: "{{ URL::route('bond.list') }}",
data: {
'_token': $('input[name=_token]').val(),
'x': x
},
success: function(response) {
var response = JSON.parse(response);
console.log(response);
}
});
答案 1 :(得分:0)
所以在成功函数console.log(response)
和控制台上请检查结果是否来,并在浏览器上打开网络部分,看看ajax请求的时间,这样做后你会明白问题出在哪里。谢谢
答案 2 :(得分:0)
问题是令牌。我从AJAX调用中删除了令牌部分,并禁用了路由的令牌验证。现在每次都很完美。