【问题标题】:laravel jquery post, posted variable emptylaravel jquery post,发布变量为空
【发布时间】:2014-08-20 20:57:01
【问题描述】:

对于我的网站,我正在尝试使用 laravel,并想做一个 jquery 发布并发送一些数据。

我的 js

$.post(
    '/ajax/index',

    {
        prijs : "321"
    },  
    function()
    {
        alert("Data: " + data + "\nStatus: " + status);

    }
);

我的路线

Route::get('ajax/index', 'AjaxController@index');

我的控制器功能

public function index()
{
    $prijs = Input::get('prijs');
    echo $prijs." = de prijs";
}

如果我发布帖子会发生什么。

警报与消息一起运行: = de prijs(所以我知道该函数被调用)

但是 $prijs 过去的价值已经没有了。 为什么 $prijs 是空的,我怎样才能访问 $.post 发送的 prijs 数据(321)。

注意 如果我更改发布警报的路线给出了一个方法notallowedexception,我不明白为什么它与get一起工作(我得到了回应)。

【问题讨论】:

  • 尝试命名您的路线。 Route::post('ajax/index', array('uses' => 'AjaxController@index', 'as' => 'ajax.route')); 并在 jquery 中使用 $.post({{ URL::route('ajax.route') }},...)};。同样在您的 jquery 函数中,您需要传入 datastatus 以使它们的变量可用。
  • @user3158900 prijs: "321" 数据对吗?

标签: jquery laravel


【解决方案1】:

您的 Ajax 调用正在通过 POST 发送数据

你的 Laravel 索引方法正在寻找一个 GET 值。试试这个:

 $data = Input::all();
 echo $data['prijs']." = de prijs";

还要确保您的路线是 POST 而不是 GET。

如果您需要更深入的示例,请查看此处:http://laravel.io/bin/k4M2e

【讨论】:

  • 如果我改变我的发布路线,我会得到一个方法notallowedexception
  • 如果您将其作为 GET 保留在您的路线中,并按此处所示更改输入,会发生什么?
  • 未定义索引项
【解决方案2】:

你的路线不应该是 POST

Route::post('ajax/index', 'AjaxController@index');

【讨论】:

  • 这就是我的想法,如果我将其更改为 post 我得到一个方法notallowedexception
【解决方案3】:

你的路线应该是:(因为你是posting

Route::post('ajax/index', 'AjaxController@index');

你的方法需要返回一些东西:

public function index()
{
    $prijs = Input::get('prijs');

    return Response::json($prijs." = de prijs");
}

【讨论】:

    猜你喜欢
    • 2013-04-27
    • 1970-01-01
    • 2018-05-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-22
    相关资源
    最近更新 更多