[英]Using Ajax in Laravel, returning 404 Not Found in console
我正在嘗試發送搜索查詢並通過ajax顯示結果。 由於某種原因,當我提交搜索時,我在控制台中收到404 Not Found錯誤消息。 任何提示或指針將不勝感激!
更新:只是為了澄清URL不是foo / local / bar / ...,我只是將這些內容保密,因為我很偏執。 詢問了路線,這是唯一涉及的路線:
/*Home Page*/
Route::get('/', array(
'as' => 'home',
'uses' => 'HomeController@home'
));
以下是控制台錯誤日志:
POST http://foo/local/bar/public/ 404 (Not Found)
jquery.js:9597
Object
{readyState: 4, getResponseHeader: function, getAllResponseHeaders: function,
setRequestHeader: function, overrideMimeType: function…} home.js:137
error home.js:138
Not Found home.js:139
JS:
$(document).ready(function(){
$("#search_form").submit(function(e) {
e.preventDefault();
//form_data
var data = $('#search_form').serializeArray();
$.ajax({
url: window.location,
type: "POST",
data: data,
success: function(data){
$("#search_results").html($search);
},
error: function(xhr, status, error){
console.log(xhr);
console.log(status);
console.log(error);
$("search_results").html("Failure");
}
});
});
});
控制器:
public function post_index() {
$search_table = Input::get('search_table');
$search_column = Input::get('search_column');
$search_input = Input::get('search_input');
$search = DB::table($search_table)->where($search_column, 'LIKE', "%{$search_input}%")->get();
echo json_encode($search);
exit;
}
視圖:
<form id="search_form" method="POST" action="" >
<select id="search_table" class="search_table">
<option value = ''>Search</option>
<option value = 'commissions'>Search commissions</option>
</select>
<div class="search_box" id="search_column_div">
<select id='search_column' name='search_column'>
<option value='select'>by ...</option>
<option value='street_address'>by street address</option>
</select>
</div>
<div id="search_input_div">
<input id='search_input' name='search_input' class='search_input' placeholder='Enter Street Address'/>
</div>
<input type="submit" class="button expand radius" id="search_button"/>
</form>
我可以立即看到您的代碼有兩個問題。 首先,您的路由正在偵聽GET請求,但是您在AJAX調用中使用了POST請求。 第二個問題是您對控制器功能的命名不正確。 您正在使用較舊的Laravel 3語法,但已在問題中標記了Laravel 4。 使用Laravel 4 RESTful控制器函數命名約定,您的函數名稱應為postIndex()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.