【发布时间】:2015-10-31 09:42:35
【问题描述】:
我正在构建一个用户可以上传项目的应用程序。我正在实施一个用户可以“喜欢/不喜欢”其他项目的系统。我正在尝试使用 AJAX 调用来保存喜欢。用户可以在项目的详细信息页面(/projects/{id})上为项目点赞
我有一个表用户、项目和喜欢。我的计划是显然将喜欢保存在喜欢表中,因此记录如下所示:id、user_id、project_id。将来我可以做一个 COUNT 查询并找出每个项目有多少喜欢等等。
由于某种原因,当我单击“赞”按钮时,我的应用程序卡住并一直加载直到崩溃。
我的文件: 阿贾克斯调用
$(document).ready(function(){
console.log("js loaded");
$('#likeform').on('submit', function(e) {
console.log("like submitted");
e.preventDefault();
$.ajax({
url: $(this).parent().attr('action'),
type: "post",
data: {'_token': token, 'user_id': $('input[name=user_id]').val(), 'project_id': $('input[name=project_id]').val()},
success: function(data){
alert(data);
}
})
});
});
我的表格
{!! Form::open(array('url'=>'projects/'.$project->id.'/like','method'=>'POST', 'id'=>'likeform')) !!}
<input type="hidden" id="token" value="{{ csrf_token() }}">
{!! Form::Submit('Like', array('class'=>'send-btn')) !!}
{!! Form::close() !!}
我的路线:
Route::get('/', 'LikeController@index');
Route::post('projects/{id}/like', 'LikeController@like');
我在 LikeController 中的点赞功能:
public function like()
{
if(Request::ajax()) {
$data = Input::all();
print_r($data);die;
}
}
【问题讨论】:
-
加载时浏览器控制台会说什么吗?你检查你的 laravel.log 了吗?提供任何类型的错误都会大大提高您获得正确答案的机会。
-
我的控制台中什么都没有。而且我完全没有错误,这有点烦人。
-
很奇怪。无论如何,我没有测试你的代码,但是你试图从你的表单中检索一个
action属性,而它没有。您确实设置了url。我不确定这就是你要找的东西,但值得一试。旁注:使用Form外观构建一个表单会自动设置一个隐藏的token字段,因此实际上不需要在表单中添加第二个。 -
哦,好吧,我想知道为什么有 2 个隐藏的令牌字段。现在我知道了:)
-
actionvsurl是一派胡言。我的错。仍然很奇怪,您没有收到任何错误,至少在服务器日志中。
标签: php jquery mysql ajax laravel