【发布时间】:2015-09-08 22:38:23
【问题描述】:
好的,最好我给你看一下这个问题的相关代码 sn-ps 并告诉你。
首先从实际的 Ajax 请求开始:
$(document).ready(function(){
$('.modelLink').click(function(){
var reviewID = $(this).data('id');
$.ajaxSetup({
headers: { 'X-CSRF-Token' : $('meta[name=_token]').attr('content') }
});
jQuery.ajax({
url: '/flyout',
type: 'POST',
data:{
'reviewID':reviewID
},
success: function( data ){
alert('Success Alert');
console.log(data.value);
}
});
});
});
如您所见,我将 reviewID 传递给 URL 弹出按钮。我已将 CSRF-TOKEN 放入 ajax 设置中,因为 Laravel 在每个发布请求中都需要此设置。
现在让我们显示它要去的路线。
Route::post('/flyout','DashboardController@flyout');
这现在应该路由到我的仪表板控制器到操作“flyout” 出于测试目的,我没有在我的控制器中做任何事情,除了以下内容:
public function flyout(){
$result = 'hello';
return Response::json($result);
}
太好了,这应该是一个简单的 3 步过程。向控制器发送请求,用数据响应,然后用数据做一些事情。
奇怪的是,我确实收到了警报('Success Alert');这告诉我它已经收到了响应,因为我一直认为 ajax 的成功部分意味着它发送并收到了响应。
现在我走了
console.log(data)
这显示了我网页中的所有 html。甚至一直显示到....奇怪。
现在我走了
console.log(data.value)
这然后写“未定义”
有人知道会发生什么吗?
编辑::
这是开发者工具上的网络
编辑::
进入我的中间件后,我注释掉了这部分
if (!Auth::user()->can($request->segment(1))) {
Flash::warning("You don't have the correct permissions to access that page.");
return new RedirectResponse(url('/dashboard'));
}
现在我已经完成了这个,网络部分看起来像这样:
【问题讨论】:
-
返回的 HTML 是否是 Laravel 错误页面?
-
@MattMcDonald no ,它实际上是发回页面的html。因此,如果我检查元素,它会匹配所有奇怪的 html
标签: jquery ajax post model-view-controller laravel-5