Javascript Laravel ajax post,未获得响应、错误或数据库插入
我正在尝试进行一个POST-ajax调用,它将接受一个表单输入值,通过一个路由将其传递给将调用insert函数的controller。我已经用ajax调用设置了我的路线、插入函数、控制器和刀片,但是当我填充输入并点击提交按钮时,控制台中没有响应或错误,数据库中也没有插入记录 也许我完全忽略了一些事情,但我是否清楚我遗漏了什么或做错了什么?也许我也应该以不同的方式调试它 Route.phpJavascript Laravel ajax post,未获得响应、错误或数据库插入,javascript,php,ajax,laravel,Javascript,Php,Ajax,Laravel,我正在尝试进行一个POST-ajax调用,它将接受一个表单输入值,通过一个路由将其传递给将调用insert函数的controller。我已经用ajax调用设置了我的路线、插入函数、控制器和刀片,但是当我填充输入并点击提交按钮时,控制台中没有响应或错误,数据库中也没有插入记录 也许我完全忽略了一些事情,但我是否清楚我遗漏了什么或做错了什么?也许我也应该以不同的方式调试它 Route.php Route::post('insertFruit', 'Controller@insertFruit');
Route::post('insertFruit', 'Controller@insertFruit');
controller.php
public function insertFruit(Request $request)
{
if ($request->ajax()) {
$productComment = $request->productComment;
$fruitService = new fruitService();
$fruitService->insertListRecord($productComment);
}
}
fruitService.php
public function insertListRecord($productComment)
{
$link = DB::conn();
$sql = "CALL fruit.fruitInsert(?, ?)";
$exec = odbc_exec($link, $sql);
$prep = odbc_prepare($link, $sql);
if ($prep === false) {
$error = odbc_errormsg($link);
if (!empty($error)) {
throw new \Exception($error);
}
}
$exec = odbc_execute($prep, array($productComment));
if ($exec === false) {
$error = odbc_errormsg($link);
if (!empty($error)) {
throw new \Exception($error);
}
}
}
blade.php
<form id="productForm" class="uk-form uk-width-1-1">
<div class="uk-grid">
<div class="uk-width-1-1">
<label class="uk-form-label" for="">Comments:</label>
<textarea name="productComment" id="" cols="70" rows="5" placeholder="Optional"></textarea>
</div>
</div>
<div class="uk-grid">
<div class="uk-width-1-1 uk-text-center">
<button id="save" class="uk-button uk-button-primary uk-button-large" style="padding:0 50px;">Save</button>
</div>
</div>
</form>
$("#save").click(function(e){
e.preventDefault();
var productComment = $("input[name=productComment]").val();
$.ajax({
url:'/insertFruit',
data:{
productComment:productComment
},
"_token": "{{ csrf_token() }}",
type:"POST",
success:function(response){
console.log(response);
},
error: function(jqxhr, status, exception) {
alert('Exception:', exception);
}
});
});
评论:
拯救
$(“#保存”)。单击(函数(e){
e、 预防默认值();
var productComment=$(“输入[name=productComment]”)val();
$.ajax({
url:“/insertFruit”,
数据:{
productComment:productComment
},
“_-token”:“{{csrf_-token()}}”,
类型:“POST”,
成功:功能(响应){
控制台日志(响应);
},
错误:函数(jqxhr、状态、异常){
警报(“异常:”,异常);
}
});
});
在表单的HTML中,您需要将其方法设置为POST,因为您的路由需要POST方法
<form id="productForm" class="uk-form uk-width-1-1" method="post">
if($request->ajax())如果删除if($request->ajax()),会发生什么{
check?@Adam同样不幸的是,错误日志在这一点上或stacktrace错误页面上填满了?很好的一点,我这样做了,现在控制台中出现了500个错误。这一点上controller.php或fruitService.php中可能有任何问题。如果我跟踪到它,将更新答案。所以ajax通过了200,有赌注吗如何从准备或执行中返回错误?ODBC不太适用,但这可能会有所帮助?-但根据我的经验,它并不总是返回上一条消息(var_dumping有时为空)。我认为这是表单数据的问题。它需要作为字符串以单引号(如“category”)的形式传递。我应该做些什么来确保它以这种方式传递?