2017-02-23 4 views
0

Ich versuche, einige Daten über Ajax in Laravel zu schieben. Leider funktioniert es nicht. Als ich im Netzwerkverkehr beobachtete, fand ich diese:Laravel Ajax POST Anfrage funktioniert nicht: 302 gefunden

Request Method:POST 
Status Code:302 Found 

Ich versuche, Daten von einem JSGrid zu bekommen, der gut arbeitet. Das Datenobjekt ist gefüllt. Ich habe nachgeschaut. Zum Testen habe ich gerade eine kurze Nachricht in meinem Controller zurückgegeben. Aber es ist nicht einmal genannt, wenn ich die POST-Anfrage senden ...

Hier ist mein Code

Javascript:

$.ajaxSetup({ 
    headers: {'X-CSRF-Token': $('meta[name=token]').attr('content')} 
}); 
$('#save_list').click(function (e) { 
    e.preventDefault(); 
    var url = '{{ route("account.save_accounts_to_user") }}'; 
    var post = {}; 
    post.account_list = $("#jsGrid").jsGrid("option", "data"); 

    $.ajax({ 
     type: "POST", 
     url: url, 
     dataType: 'JSON', 
     data: post, 
     cache: false, 
     success: function (data, textStatus, jqXHR) { 
      console.log(textStatus + " - " + data); 
      return data; 
     }, 
     error: function (jqXHR, textStatus, errorThrown) { 
      console.log(jqXHR.responseText + textStatus + " - " + errorThrown); 
     } 
    }); 
    return false; 
}); 

Route:

Route::post('save_accounts_to_user', ['as' => 'account.save_accounts_to_user', 'uses' => '[email protected]']); //ajax request 

Controller:

/** 
* Save all used accounts for a user. 
* 
* @param \Illuminate\Http\Request $request 
* @return \Illuminate\Http\Response 
*/ 
public function saveAccountsToUser(Request $request) 
{ 
    $response = array(); 
    $response["status"] = "ok"; 
    $response["message"] = trans('account.accounts_saved'); 

    return \Response::json($response); 
} 

Ich habe erwartet, dass ich den JSON-Text von der Controller-Methode als Antwortnachricht erhalten werde. Stattdessen werde ich umgeleitet, ohne die gewünschte Methode aufzurufen. Ich weiß nicht, was dort passiert. Dieser Route ist keine Middleware zugeordnet, was der Grund für diese Umleitung sein könnte.

Haben Sie Ideen?

Antwort

0

Kann 'X-CSRF-Token' von Ihnen anstelle von 'X-CSRF-TOKEN' in Laravel Docs erwähnt wird, ist das Problem hier? Versuchen Sie, die Laravel-Dokumente vollständig zu befolgen. Bitte beachten Sie den nachfolgenden Link.

https://laravel.com/docs/5.3/csrf

$.ajaxSetup({ 
    headers: { 
    'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') 
    } 
}); 
+0

Umleitung wurde ich den Namen geändert, aber die Anfrage noch umgeleitet wurde. Aber ich habe den Grund gefunden. =) – miago

+1

Könnten Sie bitte den Grund hier angeben, bro – fighter

1

Schließlich war es eine Middleware eines outter Gruppe, die die Anfrage -.-