【问题标题】:Laravel 4, jQuery .ajax, No post input receivedLaravel 4,jQuery .ajax,没有收到帖子输入
【发布时间】:2014-04-26 11:46:01
【问题描述】:

我一定是遗漏了什么,没想到这会是个问题。

我有一个登录表单,虽然它在同一个域上,但它与 laravel 表单没有连接,并且在“登录”处有一个带有 laravel 的 POST 路由。

我可以将其更改为 GET 并且一切正常,但我想使用 POST。

/online/index.html

$("#login").click(function(e){
    console.log( $("#loginForm").serialize() );
    var request = $.ajax({
      url: "../login/",
      type: "POST",
      data: { test : "someuser" },
      dataType: "json"
    });

    request.done(function( data ) {
      console.log("Complete");
      console.log(data);
    });

    request.fail(function( jqXHR, textStatus ) {
      console.log("Failed");
      console.log(textStatus);
    });
});

Route::post('login', array('as' => 'login', 'uses' => 'AuthController@doLogin'));
(在 /online/ 下面)

class AuthController extends Controller {

    public function doLogin(){

        $username = Input::get('username');
        $password = Input::get('password');

        return Response::json(Input::all());

    }
}

在 javascript 控制台中,当您按下登录时,它会显示...

Complete
[]

当它应该说这样的话时......

Complete
[ test => "someuser" ]


使用 Laravel 4、jQuery 1.8.3。任何想法都会很棒...谢谢!

【问题讨论】:

  • 如果您使用的是 chrome / safari,请打开网络选项卡并检查发布数据是否按照您的意图发送
  • 按预期发送。如果我将 ajax 调用更改为 get,一切都会按预期工作。只是当它是一个 POST 调用时,值不会传递给 laravel。
  • Input::json() 有效吗?如果是这样,您需要将 AJAX 请求的内容类型标头更改为 application/json
  • 您在路由文件中配置了“post”类型的路由?
  • Route::post('login', array('as' => 'login', 'uses' => 'AuthController@doLogin'));

标签: javascript php jquery ajax laravel-4


【解决方案1】:

我刚刚删除了 Ajax 请求 URL 中的尾部斜杠,一切都按计划进行。

【讨论】:

    猜你喜欢
    • 2015-03-25
    • 2017-02-17
    • 1970-01-01
    • 1970-01-01
    • 2018-12-02
    • 2016-06-03
    • 1970-01-01
    • 2017-05-02
    • 1970-01-01
    相关资源
    最近更新 更多