我在Laravel Project上有这个ajax请求(这是一个简单的版本,但是正在运行):
$.ajax({
method: 'POST', // Type of response and matches what we said in the route
url: '/admin/lessons/addMember/licenseMemberId', // This is the url we gave in the route
data: {'licenseMemberId' : id},
success: function(response){
console.log(response);
if ($.trim(response)) {
var actualMembers = document.getElementById("actual-member");
}
$('#membersModal').modal('hide');
},
});
当我在本地工作并且使用php artisan服务时,ajax调用有效,但是当我部署到我的生产服务器时则不行(因为路径/ admin / lessons / addMember / licenseMemberId不是服务器中的完整路径) 。 最好的方法应该是使用路线,但我不知道如何。 这是路由表:
web |
| | POST | admin/lessons/addMember/{licenseMemberId} | lessons.addMember | App\Http\Controllers\admin\LessonController@addMember
有没有办法将laravel路线与抛物线一起使用?如果没有,我该怎么办?
答案 0 :(得分:2)
您不应该像在Vanila php或html中那样使用Laravel中的URL,而应使用URL function,此功能可确保您的路由正确地指向项目根,在这种情况下,您可以像这样
$.ajax({
method: 'GET',
url: '{{URL::to('/admin/lessons/addMember/')}}' + id,
// Laravel will print the url and you just need to concat your id to it
success: function(response){
console.log(response);
if ($.trim(response)) {
var actualMembers = document.getElementById("actual-member");
}
$('#membersModal').modal('hide');
},
});
请注意,我在使用GET时似乎正在检索数据而不是发布数据,但是,如果需要发布数据,则MisaGH答案是解决之道
答案 1 :(得分:1)
在路由中不接收参数。
URL应为:/admin/lessons/addMember
$.ajax({
method: 'POST', // Type of response and matches what we said in the route
url: '/admin/lessons/addMember', // This is the url we gave in the route
data: {'licenseMemberId' : id},
success: function(response){
console.log(response);
if ($.trim(response)) {
var actualMembers = document.getElementById("actual-member");
}
$('#membersModal').modal('hide');
},
});
和控制器:
$member_id = request('licenseMemberId');
答案 2 :(得分:0)
真正的路线是
admin/lessons/addMember/{licenseMemberId}
因此在javascript中,您需要调用
'/admin/lessons/addMember/' + id
其中id是一个变量。在控制器中,您可以使用ID获取
Input::get('licenseMemberId') or $request->get('licenseMemberId');