使用Laravel 5.4请求Ajax

问题描述 投票:0回答:1

我试图用Laravel 5.4做一个Ajax请求的例子。

测试示例很简单,只需在我的View中的input = text字段中输入一个数值,然后将该字段保存到Controller,然后将+ 10添加到该值,然后将该值返回到我的View,以便它可以显示在警报。

HTML:viewteste.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或路由时做错了吗?

ajax laravel routes
1个回答
4
投票

返回一个json响应。你需要使用。

response()->json([
 'somemessage' => 'message',
 'valor' => $valor
]);

更新:您收到错误提示,因为我认为您的路由方法与您的控制器方法不匹配。

Route::post('/teste/valor', 'TesteAjaxController@valor');

你控制器里的位置

public function cep() ...
© www.soinside.com 2019 - 2024. All rights reserved.