2017-03-01 5 views
0

私のルートファイルに問題があり、Ajaxでルートを参照しています。ここでは、関連するすべてのルートとAjaxコードのsnipitは次のとおりです。プレフィックスを持つLaravelルートを参照してください - Javascript AJAX-Laravel 5.3

web.php(基本ルートファイル)に私は私のshoppingcard.routes.phpで今

require_once base_path('routes/shoppingcard.routes.php'); 

を必要とする経路を含みますよ私は

Route::group(['prefix' => 'shoppingCard'], function() { 
    // add Produkt 
    Route::post('addToBasket', ['as' => 'addToBasket', 'uses' => 'Shop\Frontend\[email protected]']); 
}); 

私はaddToBasketルートを参照したいが、私のAjaxコードザッツ

今まで本当に成功しなかったバグこのルートグループは次のとおりです。

$(document).on('click', '#addToBasket', function() { 
    var quantitie = $('input[type=number]').val(); 
    $.ajax({ 
     type: "post", 
     url: "/shoppingCard/addToBasket", // <----- Route I try to refer to 
     data: {'id': $(this).data("id"), 'quantitie': quantitie}, 
     dataType: 'JSON', 
     success: function (data) { 
      // not important 
     }, 
     error: function (data) { 
      // not important 
     } 
    }); 
}); 

は今、私は正しくルートを参照するために多くのことを試してみたが、私はいつも、私はLaravel 5.3

私は現在、私のコンソールで取得エラーを使用しています500または404

を取得します:

http://mypage.com/shoppingCard/addToBasket [HTTP/1.0 500内部サーバーエラー49ms]

しかし、私はエラーを取得する理由パスが(shoppingCard/addToBasket)そうば完全に正常に見えますか? 私はそれについてちょっと混乱しています

ありがとうございました!

+1

パスが多分あなたのコントローラ –

+0

をチェックし、私がやったと何もかも罰金、罰金に見える..私は、このようなルートで「こんにちは」の戻りを試してみました: ルート::ポスト(「addToBasket」、機能(){リターン"こんにちは" } );これはどちらもうまくいきませんでした – WellNo

答えて

0

は、私はあなたがcsrf_token()を使用していなかったと思います

$(document).on('click', '#addToBasket', function() { 
    var quantitie = $('input[type=number]').val(); 
    $.ajax({ 
     type: "post", 
     url: "/shoppingCard/addToBasket", // <----- Route I try to refer to 
     data: {'id': $(this).data("id"), 'quantitie': quantitie}, 
     dataType: 'JSON', 
     headers: { 
      'X-CSRF-TOKEN': '{{ csrf_token() }}' 
     }, 
     success: function (data) { 
      // not important 
     }, 
     error: function (data) { 
      // not important 
     } 
    }); 
}); 

を使用してみてください。私はそれを中に入れた。

+0

私はcsrf_tokenを別のファイルに含めました。このコードは他のショップでも問題ありません。私が他の店を参照するルートを変更した場合、正常に動作します。だからjavascriptのコードは間違いなく素晴らしいです! – WellNo

+0

(でも、今でも試してみましたが、それと同じエラーです) – WellNo

+0

getメソッドを使用して、動作しているかどうかを試してみてください。 – Manish

0

私はあなたがカスタムルートファイルを使用していたことに気付きませんでした。カスタムルートファイルをRouteServiceProviderにマップしましたか?ここで読むことができます:http://laravel-tricks.com/tricks/laravel-5-multiple-routes-files

+0

いいえルートファイルをマップしていませんが、新しいルートファイルが通常のweb.phpファイルに残っているため、その必要はありません。それは実際には新しいルートファイルではありません。サービスプロバイダにマッピングされていない別のショップが約7つあります。 – WellNo

+0

addBasketルートはshoppingcard.routes.phpにあります。これはデフォルトweb.phpではありません –

+0

大丈夫私はこれを試してみます。 one seccond – WellNo

0

複数のルートを作成する例を示します。私は与えられたlinkから取った。この例では、独自のルートを作成することができます。ここでは例は以下のとおりです。

  1. 2つのルートファイルは以下のコードのように見えるように編集RouteServiceProvider.phpファイルをroutes.web.phpと
    1. routes.api.php作成します(注:をあなたがしたいと、ちょうど同じロジックを次のように多くのルートを追加することができます。)
<?php 

namespace App\Providers; 

use Illuminate\Foundation\Support\Providers\RouteServiceProvider as ServiceProvider; 
use Illuminate\Routing\Router; 

class RouteServiceProvider extends ServiceProvider 
{ 

    /** 
    * This namespace is applied to the controller routes in your routes file. 
    * 
    * In addition, it is set as the URL generator's root namespace. 
    * 
    * @var string 
    */ 
    protected $webNamespace = 'App\Http\Controllers\Web'; 

    protected $apiNamespace = 'App\Http\Controllers\Api'; 

    /** 
    * Define your route model bindings, pattern filters, etc. 
    * 
    * @param \Illuminate\Routing\Router $router 
    * 
    * @return void 
    */ 
    public function boot(Router $router) 
    { 
     // 

     parent::boot($router); 
    } 

    /** 
    * Define the routes for the application. 
    * 
    * @param \Illuminate\Routing\Router $router 
    * 
    * @return void 
    */ 
    public function map(Router $router) 
    { 

     /* 
     |-------------------------------------------------------------------------- 
     | Web Router 
     |-------------------------------------------------------------------------- 
     */ 

     $router->group(['namespace' => $this->webNamespace], function ($router) { 
      require app_path('Http/routes.web.php'); 
     }); 

     /* 
     |-------------------------------------------------------------------------- 
     | Api Router 
     |-------------------------------------------------------------------------- 
     */ 

     $router->group(['namespace' => $this->apiNamespace], function ($router) { 
      require app_path('Http/routes.api.php'); 
     }); 

    } 
} 

あなたの問題を解決するかどうか、私に答えてください。

関連する問題