【发布时间】:2014-11-13 00:08:28
【问题描述】:
尝试使用带有 laravel 后端的 ajax 简单地返回和显示用户信息。使用最新的 JQuery 和 Laravel 和 MySQL。这是简单的路线:
Route::get('users', function()
{
$users = User::all();
return $users;
});
在浏览器中通过 url 调用时效果很好。
这是简单的 ajax 请求:
$().ready(function() {
$.ajax({
url: "http://xx.xxx.xxx.xxx/users",
type: "GET",
cache: false,
dataType: "jsonp",
jsonpCallback: "JsonpCallback"
})
.done(function( data )
{
JsonpCallback( data );
})
.fail(function( jqXHR, textStatus, errorThrown )
{
alert( "Request failed: " + textStatus + " / " + errorThrown );
});
function JsonpCallback( json )
{
$( '#mainContent' ).html( json.result );
}
return false;
});
用户记录正在返回到 dom 中,我可以通过开发工具网络响应看到它们,但是 .fail 每次都会触发,并且永远不会调用回调。失败是:
Request failed: parsererror / Error: JasonpCallback was never called.
我已经尝试了几天我能找到的所有解决方案,并且真的可以使用帮助。它必须是我缺少的一些简单的东西。
【问题讨论】:
-
你试过没有http的url吗?只需致电/用户。 parseerror 表示,可能是数据类型错误
-
也许这很愚蠢,但是您是否尝试将
function JsonpCallback移到其他所有功能之外? -
pc-shooter - 最终,html/javascript 将成为设备上的应用程序,并且需要服务器的完整路径。我刚才确实尝试过,但是 .fail 仍然会以空白信息触发。 Dheed - 当我读到它时,它几乎在其他功能之外,但我甚至将它移到就绪之外,结果相同。并不是回调不起作用,而是 .done 没有触发并且 .fail 是所以回调永远不会被调用。
标签: php jquery mysql ajax laravel-4