我只是想用 laravel 中的按钮保存,但是当使用控制台日志时,我在控制台 idk 中得到完整的代码,为什么会发生这种情况?
这是我的输入和按钮
<form action="{{ url('sendcom') }}" method="post">
@csrf
<input type="text" id="editor" name="Name">
<button type="submit" id="btn" name="submit" value="Submit">
submit
</button>
</form>
我像这样使用ajax:
<script type="text/javascript">
$(document).ready(function(){
$.ajaxSetup({
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
}
});
$("#btn").click(function(e){
e.preventDefault()
var data = $('#editor').val()
$.ajax({
type: "post",
url: "{{ route('sendcom') }}",
data: { data: data },
success: function(res){
console.log(res);
}
});
});
});
</script>
我在控制器中得到它,如下所示:
public function sendcom(Request $request)
{
if($request->ajax()){
$content = $request->data;
User::updateOrCreate([
'contract' => $content
]);
return response(['success' => 'contract save success.']);
}
}
但是当我单击“提交”按钮时,它会为我提供整个页面的代码 我也不知道我哪里做错了
这里的
response
关键字实际上是 Illuminate\Http\Response
的一个实例,可以在文档中的 here 看到。这里的 ajax 期望的是一个 JSON
响应,顾名思义,它将作为 javascript 对象使用。
线路:
return response(['success' => 'contract save success.']);
应改为:
return json_encode(['success' => 'contract save success.']);
这将创建一个要返回的新 json 对象。然后我们可以使用
res.success
访问它来获取消息。