Sie können immer noch sicher Ajax-Aufrufe machen Sicherheitsmechanik mit Cake Verfügung gestellte Formular. Rendern Sie dazu ein nicht sichtbares Formular und platzieren Sie Eingaben, um die Ajax-Aufrufparameter zu speichern. Dann setze diese Parameter mit Javascript in deinem Formular und führe den Ajax-Aufruf durch Serialisierung durch. Denken Sie daran, dass Sie das Formular mit einem neuen gültigen CSRF-Token aktualisieren müssen, wenn CSRF-Prüfung aktiviert ist (und ein Token pro Sitzung deaktiviert ist) (Sie können es im Controller mit $this->request->params['_Token']['key']
lesen).
Beispiel:
<?php
echo $this->Form->create('AjaxForm');
echo $this->Form->hidden('value');
echo $this->Form->end();
?>
<script>
function makeAjaxCall() {
$.post(
ajaxUrl,
$('#AjaxForm').serialize(),
function(data) {
$('#AjaxForm [name="data[_Token][key]"]').val(data.newCsrfToken)
}
);
};
</script>
Für weitere Referenz, wir eine Komponente erstellt haben, die Sicherheit auf Client-Seite Formulare aktiviert zu halten, ermöglicht es, die dinamically modifiziert werden, und beseitigt die Notwendigkeit, Felder oder Aktionen zu entsperren, wenn Ajax machen Anrufe. Sie können es unter https://github.com/QTSdev/DynamicSecurity finden.
Die Komponente (und die Github-Seite) sind verschwunden. Hast du einen neuen Link? – schnauss