我希望使用ajax更改基于所选年份和周的值。
这是我的ajax功能:
function changeBekeken() {
var year = $("#jaar-nr").val();
var week = $("#week-nr").val();
$.ajax({
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
},
url: "/planning/viewed",
type: "POST",
data: {
year_nr: year,
week_nr: week
},
dataType: "json",
success: function(data) {
alert(data);
}
});
}
$(document).ready(function(){
$("#week-nr").change(function(){
changeBekeken();
});
$("#jaar-nr").change(function(){
changeBekeken();
});
});
这是路线:
Route::post('/planning/viewed', 'PlanningController@viewed');
数据被发送到控制器功能:
public function viewed(Request $request) {
$check = DB::table('planning_files')
->where([
['user_id', Auth::user()->id],
['created_year', $request->input('year_nr')],
['week', $request->input('week_nr')],
])
->select('seen')
->first();
if($check) {
return json_encode($check, JSON_PRETTY_PRINT);
} else {
return json_encode(false);
}
}
但即使我使用$ request-> all();请求总是空的。我的函数总是返回false。几乎相同的功能在另一个页面上工作,但我似乎无法使这个功能正常工作。
我尝试在ajax函数中添加一些额外的信息,比如内容类型和数据类型,但似乎都没有。
任何提示?
修改1
这些是我在控制器中使用的命名空间和类:
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use DB;
use Auth;
use Storage;
修改2
当我将该功能复制到另一个页面时,它可以正常工作。它与我使用ajax函数的页面上的内容有关。可能与令牌有些冲突。如果他们将来可能遇到同样的问题,我会尽力解决这个问题并为其他人发布答案。