簡體   English   中英

Laravel 4:Input :: all()使用$ .ajax POST不返回任何數據

[英]Laravel 4: Input::all() returns no data with $.ajax POST

在學習Laravel 4的過程中,如果我的問題聽起來很傻,請原諒我。

我正在嘗試使用$ .ajax將表單數據發布到控制器。 檢查控制器后,Input :: all()完全不會填充數據。

檢查表單是否已在jquery代碼中序列化。 所以現在我在這里尋求幫助,看看是否有人知道如何解決此問題。

以下是到目前為止我編寫的代碼。

jQuery代碼

<script>
$(document).ready(function(){
    var BASE = "<?php echo Request::root(); ?>/signup/add";
    $('#password').on('blur', function() {
        var info = $('.info');

        $.ajax({
            url:BASE,
            method:'post',
            contentType:'application/json; charset=utf-8',
            cache:false,
            dataType:'json',
            data: $("#membersignup").serialize(),
            success:function(data){
                console.log(data);
            },
            error:function(xhr,status,error){
                //errors here
            }
        });
    });
});
</script>

route.php

Route::post('signup/add', array('uses'=>'MemberController@store'));

MemberController.php

public function store()
{
    return Response::json(Input::all());
}

而不是使用以下方法創建url

var BASE = "<?php echo Request::root(); ?>/signup/add";

使用這樣的命名路由:

Route::post('signup/add', array('uses' => 'MemberController@store', 'as' => 'signup.add'));

因此,使用以下方法為您生成ajax請求的url會更容易:

var BASE = "<?php echo route('signup.add'); ?>

如果您仍在生成正確的url則可能無法解決您的問題,但可以肯定地會生成正確的url 我懷疑您是否沒有將請求發送到正確的url但不確定。

由於仍然沒有可接受的答案,因此我也遇到了類似的問題,已通過刪除dataType選項並允許其自動選擇來解決此問題。

Set your contentType like this...

$.ajax({
        url:BASE,
        method:'post',
        contentType: 'application/x-www-form-urlencoded',
        cache:false,
        dataType:'json',
        data: $("#membersignup").serialize(),
        success:function(data){
            console.log(data);
        },
        error:function(xhr,status,error){
            //errors here
        }
    });

我的猜測是$ .ajax不適用於jquery-1.11.0.min.js

更改為$ .post ,您將可以使用Input :: all()。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM