Yii2 ajax-bad request (#400)
Wenn ich mit diesem code, bekomme ich diese Fehlermeldung als Antwort:
Bad Request (#400): Nicht möglich, zu überprüfen, ob Ihre Daten
/**
* Active toggle
*/
$(document).on('click', '[data-toggle-active-menu-items]', function(e){
e.preventDefault();
var id = $(this).data('toggle-active-menu-items');
$.ajax({
url: 'active',
type: 'POST',
data: {'id': id, _csrf: yii.getCsrfToken()},
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function(data) {
if (data.active == 1)
{
$('#list-' + id + ' [data-toggle-active-menu-items]').html('<span class="glyphicon glyphicon-eye-open"></span>');
} else {
$('#list-' + id + ' [data-toggle-active-menu-items]').html('<span class="glyphicon glyphicon-eye-close"></span>');
}
}
});
});
Habe ich versucht, indem
_csrf: yii.getCsrfToken()
und
contentType: "application/json; charset=utf-8",
dataType: "json",
aber das funktioniert nicht
es funktioniert wenn ich diese an meinem controller, aber das ist nicht gut, das möchte ich nicht deaktivieren csrf-Validierung
public $enableCsrfValidation = false;
Wie kann ich dieses Problem beheben?
sollte nicht das csrf-token/name gesendet werden, zusammen mit anderen post-Daten, in Ihrem Fall, mit der id, so dass es einfach wird:
Ich habe auch versucht, aber das funktioniert nicht
so lange, wie Sie senden Sie die richtige csrf-name und Wert in der post-Anforderung, es gibt keinen Grund, warum es würde nicht funktionieren, machst du etwas falsch.
haben Sie Hinzugefügt, <?= Html::csrfMetaTags() ?> und mit $thi->beginBody() und dann mit js-register zu rejister Ihre js-code? Überprüfen Sie auch, wie Sie senden mehrere Daten, wenn Sie $.die ajax-Methode
ist Ihr problem gelöst?
data: {id: id, csrf_token_name: csrf_token_value}
?Ich habe auch versucht, aber das funktioniert nicht
so lange, wie Sie senden Sie die richtige csrf-name und Wert in der post-Anforderung, es gibt keinen Grund, warum es würde nicht funktionieren, machst du etwas falsch.
haben Sie Hinzugefügt, <?= Html::csrfMetaTags() ?> und mit $thi->beginBody() und dann mit js-register zu rejister Ihre js-code? Überprüfen Sie auch, wie Sie senden mehrere Daten, wenn Sie $.die ajax-Methode
ist Ihr problem gelöst?
InformationsquelleAutor Ruben | 2014-07-31
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie versuchen, diese Art und Weise. Es ist Arbeit!
InformationsquelleAutor Phong Đỗ
andere Beispiele: http://docs.mirocow.com/doku.php?id=yii2:docs#добавление_csrftoken_в_ajax_запрос_yii2
Sorry, kann sein, mein Kommentar ist "Zweideutigkeit". Du hast die +1 für Deine Antwort von mir. Mein Kommentar bedeutet, dass Ihre Antwort richtig ist! Ich ithink wir haben unsere Kommentare zu löschen, weil Sie offtopic.
InformationsquelleAutor Mirocow
Dies ist mein code nun ignorieren Sie einfach die csrf token:
InformationsquelleAutor Ruben
Fügen Sie diesen code an der Unterseite Ihres layout:
InformationsquelleAutor Oleg
In meinem Fall hab ich löste dieses problem mit der Blockierung csrf-Prüfung für "site/speichern-order" - route (actionSaveOrder).
natürlich, aber wenn ich versuche zu senden csrf-Schlüssel zur Verifizierung der server es nicht erkennt, leider (
InformationsquelleAutor Maksim Tikhonov
ich hatte das gleiche Problem
aber ich merkte, dass ich vergaß hinzuzufügen
Html::csrfMetaTags()
im head-Bereich und das eigentlich fest für michviel Glück
InformationsquelleAutor leila