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: 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

Schreibe einen Kommentar