Laravel 5.4 的 Ajax 请求
Posted
技术标签:
【中文标题】Laravel 5.4 的 Ajax 请求【英文标题】:Request of Ajax with Laravel 5.4 【发布时间】:2018-06-12 03:29:47 【问题描述】:我正在尝试使用 Laravel 5.4 制作 Ajax 请求的示例。
测试示例很简单,只需在我的 View 的 input = text 字段中输入一个数值,然后将该字段发送给 Controller,然后将该值加上 + 10,然后将该值返回给我的 View,这样它可以显示在警报上。
HTML:查看teste.blade.php
<!DOCTYPE html>
<head>
<title></title>
</head>
<body>
<form action="">
Valor: <input type="text" id="valor" name="valor" />
</form>
</body>
</html>
JS:js文件在viewteste.blade.php里面,我只是拆分了一下,方便解释。
<script>
$.ajaxSetup(
headers:
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
);
$(document).ready(function()
$("#valor").on('blur', function()
valor = $(this).val();
$.ajax(
type:'POST',
url:" URL::to('/teste/valor') ",
dataType: 'JSON',
data:
"valor": valor
,
success:function(data)
alert('Success');
,
error:function()
alert('Error');
,
);
);
);
</script>
路线
Route::get('/teste', 'TesteAjaxController@index');
Route::post('/teste/valor', 'TesteAjaxController@valor');
控制器
class TesteAjaxController extends Controller
public function index()
return view('painel.viewteste');
public function valor(Request $request)
$valor= $request->input('valor');
$valor += 10;
return $valor; // How do I return in json? in case of an error message?
当我尝试通过 ajax 发送请求时,它总是会发出警报(“错误”)。是不是我在发送 ajax 或路由时做错了什么?
【问题讨论】:
错误:function(e) console.log(e); ,在这里您可以找到您面临的错误类型 您的控制器中没有valor
方法,您通过'TesteAjaxController@valor'
访问该方法
请在您的控制器中添加 valor() 函数。
您的示例中没有 meta
标记。尝试将<meta name="csrf-token" content=" csrf_token() ">
添加到head
。
检查 Laravel 错误日志,那里会出现错误的详细描述,检查它所说的内容,服务器端脚本中可能存在错误。您的客户端脚本看起来不错。
【参考方案1】:
返回一个 json 响应。你需要使用。
response()->json([
'somemessage' => 'message',
'valor' => $valor
]);
更新:您收到错误警报,因为我认为您的路由方法与您的控制器方法不匹配。
Route::post('/teste/valor', 'TesteAjaxController@valor');
你的控制器在哪里
public function cep() ...
【讨论】:
以上是关于Laravel 5.4 的 Ajax 请求的主要内容,如果未能解决你的问题,请参考以下文章