使用带有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中,我可以通过dev工具网络响应看到它们,但.fail每次都会踢,并且永远不会调用回调。失败的是:
Request failed: parsererror / Error: JasonpCallback was never called.
我已经尝试了几天我能找到的所有解决方案,并且可以真正使用帮助。它必须是我想念的简单。
答案 0 :(得分:0)
jQuery期待jsonp
响应,但return $users
返回普通json
。可以将dataType
切换为json
,也可以改为:
return Response::json($users)->setCallback(Input::get('callback'));
...从你的路线。
请参阅creating a JSONP response下的Laravel文档。