如何使用laravel5 ajax post

如何使用laravel5 ajax post,ajax,laravel,Ajax,Laravel,我不能通过$request->ajax(),我可以获取和dd($data),但它总是返回false,我的代码有什么问题。有人能帮我吗?谢谢 路线 看法 js 如果深入研究代码,您会发现$request->ajax()方法依赖于此逻辑(请参阅vendor/symfony/httpfoundation/request.php): 默认情况下,jQuery不会设置此标头。您应该执行的第一个操作–查看AJAX调用在浏览器的开发人员工具中的外观。您可以在那里看到完整的HTTP标头–标头是否包含此X-Req

我不能通过$request->ajax(),我可以获取和dd($data),但它总是返回false,我的代码有什么问题。有人能帮我吗?谢谢

路线 看法 js
如果深入研究代码,您会发现$request->ajax()方法依赖于此逻辑(请参阅vendor/symfony/httpfoundation/request.php):

默认情况下,jQuery不会设置此标头。您应该执行的第一个操作–查看AJAX调用在浏览器的开发人员工具中的外观。您可以在那里看到完整的HTTP标头–标头是否包含此X-Requested-With行

如果它不存在(不太可能,但谁知道呢),您可以手动将其添加到AJAX数据对象中,例如:“X-request-With”:“XMLHttpRequest”

另外,我建议替换$data=$request->get('name1');与


获取输入变量的正确方法是什么(get()方法在文档中根本不存在)。

如果深入研究代码,您会发现$request->ajax()方法依赖于此逻辑(请参阅vendor/symfony/http foundation/request.php):

默认情况下,jQuery不会设置此标头。您应该执行的第一个操作–查看AJAX调用在浏览器的开发人员工具中的外观。您可以在那里看到完整的HTTP标头–标头是否包含此X-Requested-With行

如果它不存在(不太可能,但谁知道呢),您可以手动将其添加到AJAX数据对象中,例如:“X-request-With”:“XMLHttpRequest”

另外,我建议替换$data=$request->get('name1');与


获取输入变量的正确方法是什么(文档中甚至没有get()方法)。

谢谢您的回答。我补充了你说的。之后,不幸的是,标题也不包含X-request-WithTry this方法:我发现了我的问题,当我单击submit按钮时,它通过表单操作post数据,而不是通过ajax url,但我不知道如何解决这个问题。为了避免这种情况,禁用默认操作(即表单提交):$(“#test_btn”)。单击(函数(e){e.preventDefault();…}。话虽如此,我最初的建议是正确的-浏览器开发人员工具会立即向您显示这个问题:)是的,它是有效的。但我有一个疑问,为什么别人的代码不需要这个?谢谢你的回答。我补充了你说的。之后,不幸的是,标题也不包含X-request-with。试试这个方法:我发现了我的问题,当我点击提交按钮时,它通过表单操作发布数据,而不是通过ajax url,但我不知道h如何解决此问题。要避免此问题,请禁用默认操作(即表单提交):$(“#test_btn”)。单击(函数(e){e.preventDefault();…}。话虽如此,我最初的建议是正确的-浏览器开发人员工具会立即向您显示此问题:)是的,它可以工作。但我有一个疑问,为什么其他代码不需要此功能?
Route::post('test', 'BlogController@test');
<form method="POST" id="form-ajax" action="/test">
    <input type="hidden" name="_token" value="{{ csrf_token() }}">
    <div class="form-group">
        <label for="name1">Name1</label>
        <input type="text" class="form-control" name="name1" id="name1">
    </div>
    <div class="form-group">
        <button type="submit" class="btn btn-primary" id="test_btn">
            Submit
        </button>
    </div>
</form>
public function test(Request $request)
{
    $data = $request->input('name1');
    if ($request->ajax()) {
        $response = array(
            'name' => $data,
            'status' => 'success',
        );
        return response()->json($response);
    } else
        return response()->json(['msg' => 'false']);
}
$(document).ready(function() {
            $('#test_btn').click(function() {
                $.ajax({
                    url: '/test',
                    type: 'post',
                    data: {'_token': $('input[name=_token]').val(), 'name1': $('input[name=name1]').val()},
                    success: function(data) {
                        console.log(data);
                    },
                    headers: {'X-Requested-With': 'XMLHttpRequest'},
                    dataType: 'json'
                });
            });
        });
$this->headers->get('X-Requested-With');
$data = $request->input('name1');