使用laravel 5.0和ajax时出现ajax 404错误,我无法弄清楚原因。
我的路线
Route::post('user/saved/ [
'as' => 'delete-topics',
'uses' => 'TopicController@deleteTopic',
]);
我的表单
<form action="{{action('TopicController@deleteTopic')}}" method="post" class="deleteform">
<input type="hidden" name="topic_id" value="{{$topic->topic_id}}">
<input type="submit" value="delete">
</form>
我的ajax电话
// process the form
$('.deleteform').submit(function(event) {
event.preventDefault();
var $form = $(this);
var formData = {
topic_id : $form.find('input[name=topic_id]').val()
};
// process the form
$.ajax({
type : 'POST',
url : 'saved',
data : formData,
dataType : 'json',
encode : true
})
我的控制器
public function deleteTopic()
{
$topic_id = Request::get('topic_id');
if(Auth::check())
{
$user_id = Auth::user()->id;
$delete_topic = DB::table('topic_save')->where('user_id', $user_id)->where('topic_id', $topic_id)->delete();
}
$data['success'] = true;
$data['message'] = 'success';
echo json_encode($data);
}
我尝试将ajax调用中的网址更改为&#39; user / saved&#39;匹配路线但仍然得到相同的404错误
谢谢你们。
答案 0 :(得分:3)
将网址更改为您为表单设置的操作。那将是:
url = $form.attr('action');
$.ajax({
type : 'POST',
url : url,
data : formData,
dataType: 'json',
encode : true
})
答案 1 :(得分:3)
你可以从你的表单中删除action属性,因为你不使用表单提交,然后像这样更改ajax:
$.ajax({
type : 'POST',
url : "{{ route('delete-topics') }}",
data : formData,
dataType: 'json',
encode : true
})
答案 2 :(得分:0)
您的表单操作本身不正确:
<form action="{{action('TopicController@deleteTopic')}}" method="post" class="deleteform">
而不是这个用途:
action="route_path"