php - AJAX 数据未提交给 Laravel 控制器 - Laravel 6
问题描述
我设置了两个按钮,单击它们时只是将它们的值发送到我的控制器,然后我试图发回 AJAX HTML 以在主页上显示用户配置文件。id
无论我尝试什么,我都无法获得输入到控制器。
这是HTML:
<ul class="signup-li">
@foreach($participants as $participant)
<button type="submit" name="id" value="{{$participant->id}}">
{{$participant->phone}}
</button>
@endforeach
</ul>
这是我的 JS:
$(document).ready(function(){
$("button").click(function() {
var id = $(this).val();
console.log(id);
$.ajax({
type:'POST',
url:'/get-profile/',
headers: {'X-CSRF-TOKEN': '{{ csrf_token() }}' },
data: { "id" : id },
success: function(data){
console.log('hi');
},
error: function(xhr,textStatus,thrownError) {
alert(xhr + "\n" + textStatus + "\n" + thrownError);
}
});
});
});
这是我的控制器功能:
public function getProfile(Request $request)
{
$id = $request->input('id');
Log::info($id);
$participant = Participant::where('id','=',$id)->first();
$returnHTML = view('ajax.user-profile')->with('participant', $participant)->renderSections()['content'];
return response()->json(array('success' => true, 'html'=>$returnHTML));
}
我究竟做错了什么?我尝试记录请求,但没有任何结果。我为此路线禁用了 CSRF。问题是找不到参与者,因为 ID 没有到达控制器。为什么不成功?
解决方案
您可以添加dataType: 'json'
, 到您的$.ajax({...})
通话中
推荐阅读
- python - python 2.7.0中的熊猫问题
- c# - 如何使用 mono.cecil 注入具有可选参数的函数调用?
- javascript - 检查配置文件是管理员还是用户并相应显示
- docker - 在 traefik 反向代理后面时,如何确保 wordpress 简单的静态插件可以“从 172 向自身发出请求......”?
- qt - QtDBus。如何调用以 QDBusUnixFileDescriptor 作为参数的方法
- arrays - 如何以正确的方式(数组)保存字符之间有空格的行?
- r - 如何在嵌套列表中执行条件搜索
- angular - 如何从 mat-select 中获取取消选择的值
- regex - 正则表达式 - 匹配字符但不匹配正斜杠
- javascript - Object.prototype 不支持选项 [方法名称]