1
問題:AJAX要求がLaravelプレフィックスとAJAX
ウェブサイトは、言語の接頭辞なしで素晴らしい作品接頭辞で動作していません。しかし、私はそれを必要とする..前に(ミドルウェアなし)とdomain.comへのアヤックス投稿資格は素晴らしい仕事。
ただし、(/資格をアンdomain.com/ )接頭辞転記上プレフィックスミドルウェアを有する場合にはMethodNotAllowedHttpException in RouteCollection.php line 219:
プレフィックスルーティングに私が見たstackoverflowのポストがフォーカスされているエラーをスローGET関連の問題についてLaravel 5 route prefixのように。私はPOSTの問題がある(GETは正常に動作する)
アイデア?
ROUTES
Route::group(['middleware' => ['web']], function() {
Route::group(
[
'prefix' => LaravelLocalization::setLocale(),
'middleware' => [ 'localeSessionRedirect', 'localizationRedirect' ]
],
function()
{
Route::get('/', array(
'as' => 'home',
'uses' => '[email protected]'
));
Route::post('/entitlement', array(
'as' => 'entitlement-post',
'uses' => '[email protected]'
));
}
}
AJAX REQUEST
$.ajax({
type: 'POST',
url: '/entitlement', --> Becomes domain.com/en/entitlement
data: data,
dataType:'json',
beforeSend: function() {
},
...
LocalizationSessionRedirectへ
<?php namespace Mcamara\LaravelLocalization\Middleware;
use Illuminate\Http\RedirectResponse;
use Closure;
class LocaleSessionRedirect {
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*/
public function handle($request, Closure $next)
{
$params = explode('/', $request->path());
$locale = session('locale', false);
if (count($params) > 0 && $locale = app('laravellocalization')->checkLocaleInSupportedLocales($params[ 0 ]))
{
session([ 'locale' => $params[ 0 ] ]);
return $next($request);
}
if ($locale && app('laravellocalization')->checkLocaleInSupportedLocales($locale) && !(app('laravellocalization')->getDefaultLocale() === $locale && app('laravellocalization')->hideDefaultLocaleInURL()))
{
app('session')->reflash();
$redirection = app('laravellocalization')->getLocalizedURL($locale);
return new RedirectResponse($redirection, 302, [ 'Vary' => 'Accept-Language' ]);
}
return $next($request);
}
}
は、Ajaxリクエスト内のURLはまだ言語プレフィックスを必要とするか、または 'localizationRedirect'が行うことになっているものということではないでしょうか?もしそうなら、あなたは私たちにそれを見せることができますか? – tptcat
@tptcat迅速な対応をありがとう。 AJAXは動的に構築され、失敗したPOSTはdomain.com/en/entitlementです。 Mcamaraライブラリ –
のlocalizationSessionRedirectに関する質問を更新しました。こちらをご覧ください:https://laracasts.com/discuss/channels/general-discussion/mcamaralaravel-localization-usage-and-understanding-need-help?page=1 – tptcat