Laravel:Ajax 发布请求路由

Posted

技术标签:

【中文标题】Laravel:Ajax 发布请求路由【英文标题】:Laravel: Ajax post request routing 【发布时间】:2015-12-30 16:32:38 【问题描述】:

我对 laravel 和 laravel-5 很陌生。当我执行 POST 请求时,我在 firebug 控制台中收到 200 条登录请求响应。

Routes.php

Route::group
(
    [
        'prefix'    => '/',
        'namespace' => 'Landing'
    ],
    function()
    
        Route::controller('',   'WelcomeController');
    
);

WelcomeController.php

  public function postUserContact()
    
      print_r($_POST);
   

Ajax 请求:

$.ajax(
  url           :   window.location.protocol + "//" + window.location.host + '/user-contact',
  type      :   'POST',
  async     :   true,
  cache     :   false,
  processData   :   true,
  data      :   name:name,email:email,message:message,
  success       :   function (returnedData)
  console.log(returnedData)
);

如有错误请指正

【问题讨论】:

你的问题? (注意: 200 响应表示成功) @SHAZ。我收到 200 条登录响应。但在我的操作中没有登录功能。 可能,你的 WelcomeController 构造函数中有一个auth 中间件?! 【参考方案1】:

试试看:

Routes.php

    Route::get('/', array('as' => 'index', 'uses' => 'WelcomeController@getIndex'));
    Route::post('/', array('as' => 'ajaxdata', 'uses' => 'WelcomeController@ajaxdata'));

WelcomeController.php

public function getIndex()  
  return View::make('yourapp.index');
  // resources/views/yourapp/index.blade.php

public function ajaxdata()  
  if (Request::ajax()) 
    $data = Input::all();
    //you access all data from ajax
  

你的 index.blade.php 中的 Ajax

$.ajax(
  url: 'ajaxdata',  //add url what you specify in routes.php

....

【讨论】:

以上是关于Laravel:Ajax 发布请求路由的主要内容,如果未能解决你的问题,请参考以下文章

在 Laravel 5 中为非 Ajax 路由设置请求(而非响应)标头

Laravel CSRF 令牌不匹配异常。通过 jQuery ajax 向资源路由发送“Put”请求

即使 url、路由器和控制器指向同一个地方,Laravel 和 Ajax 也会根据请求返回 404

Laravel Ajax 路由问题(404 响应)

Laravel 路由相同的基本路径

AJAX 调用的 Laravel 路由无法正常工作