it-swarm.com.de

nicht erfasste Ausnahme: Nicht genügend Speicher im Ajax-Prozess

Ich habe ein Problem. Ich übermittle ein einfaches Formular, das kleine Daten enthält. Wenn ich die Registerkarte console einchecke, scheint die URL von ajax zu funktionieren, aber nachdem der Ajax verarbeitet wurde, wird ein Fehler gemeldet und auf meine Homepage und weitergeleitet Von der Konsole-Registerkarte habe ich diesen weird error:

Nicht erfasste Ausnahme: Kein Speicher mehr

In meinem Ajax habe ich nur diesen einfachen Code:

$("#add-comment").on('click', function() {

    var id = $('input[name=\'review_id\']').val();
    var customer_id = $('input[name=\'customer_id\']').val();
    var $comment = $('textarea[name=\'user_comment\']').val();

    var sample = "test";

    $.ajax({
        url: 'index.php?route=product/product/writeSubComment',
        type: 'post',
        dataType: 'json',
        data: { text: sample },
        beforeSend: function() {

        },
        success: function(data) {
            console.log(data.test);
        },
        error: function() {
            alert('ERROR!!!');
        }
    });

});

In meinem PHP Controller habe ich diese Funktion

public function writeSubComment() {

    $json = array();

    $json['test'] = $this->request->post['text'];

    $this->response->addHeader('Content-Type: application/json');
    $this->response->setOutput(json_encode($json));

}
21
Jerielle

Aufgrund Ihrer Beschreibung, dass Sie zu Ihrer Startseite weitergeleitet werden, aber dazu keinen Code in Ihren Ajax-Antwortbereichen haben, vermute ich, dass das Element # add-comment eine Schaltfläche zum Senden in Ihrem Formular ist. 

Wenn dies der Fall ist, wird Ihr Formular möglicherweise zur gleichen Zeit gesendet, zu der der Ajax-Code ausgeführt wird, wenn Sie auf die Schaltfläche # Hinzufügen-Kommentar-Senden klicken. Dies würde den Out-of-Memory-Fehler erklären, da das Ajax-Javascript gelöscht wird, während die Seite umgeleitet wird.

Sie müssten verhindern, dass Ihr Formular gesendet wird, und der erfolgreiche () oder der fehlerhafte Abschnitt muss den nächsten Schritt ausführen (z. B. Aktualisieren der Seite, Aktualisieren des Kommentarfelds). Eine Möglichkeit, dies zu tun, wäre zu ändern

$("#add-comment").on('click', function() {
     ... 

zu

$('#add-comment').on('click', function(event){ 
    event.preventDefault();
    ...

oder ändern Sie den Submit-Button von

<button type="submit" ...>Add comment</button>

zu

<button type="button" ...>Add comment</button>

oder ändern Sie das Form-Tag wie folgt

<form onsubmit="return false;">

Dies ist meine beste Vermutung aus den verfügbaren Informationen.

41
Drakes

Beim Testen in Firefox hatte ich ein ähnliches Problem. Das Ändern der type der Schaltfläche von submit in button hat für mich funktioniert. 

<button type="submit" ...>Add comment</button>

zu

<button type="button" ...>Add comment</button>
5
George Albertyn

mein Problem wurde durch Ändern gelöst

<button onClick="save_order_info_into_database()">Save</button>

in 

<button type="button" onClick="save_order_info_into_database()">Save</button>

bedeutet durch Hinzufügen von type="button" gelösten Mine ..

0

Ich hatte diesen Fehler bei der Implementierung einer Suche über Ajax, als ich versuchte, das Ergebnis in HTML-DOM anzuzeigen und das Problem wie folgt gelöst zu haben:

$('..a place where the processed output Ajax request..').on('click', '#add-comment', function() {...});

0
Arthur Danko