【发布时间】:2019-06-01 10:20:12
【问题描述】:
我正在做聊天应用程序 Laravel 5.7,并遇到了 jQuery AJAX 功能的挑战。
我正在使用 PHP 7.1.9 版本和 jQuery 3.x 版本。
这是我的 AJAX 请求表单:
<form action="/channels/{{$channel->id}}" method="POST">
<input type="hidden" name="_token" value="{{ csrf_token() }}" />
<input type="hidden" name="user_id" value="{{Auth::user()->id}}" />
<input type="hidden" name="channel_id" value="{{$channel->id}}" />
<input type="hidden" name="user" value="{{Auth::user()->name}}" />
<input type="text" name="msg" class="form-control msg" />
<input type="submit" value="Envoyer" class="btn send-msg" />
</form>
<script type="text/javascript">
$(document).ready(function() {
$.ajaxSetup({
headers: {
"X-CSRF-TOKEN": $('meta[name="csrf-token"]').attr("content")
}
});
$(".send-msg").click(function(e) {
e.preventDefault();
var user_id = $("input[name='user_id']").val();
var channel_id = $("input[name='channel_id']").val();
var user = $("input[name='user']").val();
var msg = $("input[name='msg']").val();
$.ajax({
type: "POST",
url: "/channels/{{$channel->id}}",
data: {
msg: msg,
user: user,
channel_id: channel_id,
user_id: user_id
},
success: function(data) {
alert(data.success);
}
});
});
});
</script>
还有我的 PHP 代码:
public function sendmessage(Request $request){
$message = new Messages();
$message->channel_id = $request->channel_id;
$message->user_id = $request->user_id;
$message->username = $request->user;
$message->message = $request->msg;
$message->save();
return response()->json(['success'=>'Got Simple Ajax Request.']);
}
通常,它应该发布带有数据的警报,但实际上,它会将我重定向到 /channels/{id} 和 json : success: Got Simple Ajax Request
我做错了什么,我该如何解决?
【问题讨论】:
标签: jquery arrays ajax laravel