vojtech-dobes / nette.ajax.js

Flexible AJAX for Nette Framework. Supports snippets, redirects etc.
https://componette.org/vojtech-dobes/nette.ajax.js/
MIT License
149 stars 85 forks source link

Not working on forms #134

Closed repli2dev closed 7 years ago

repli2dev commented 7 years ago

We accidentally updated from 2.1 to 2.2 and encountered complete malfunction of AJAX request... The callbacks were attached but when triggering on form (by clicking on button) we get:

too much recursion (nette.ajax.js code on line 47)
Funkci getElementById() předán prázdný řetězec. (jQuery code)
too much recursion (jQuery code)

First stack trace:

nette/inner.fire()
scripts.all.js:52
nette/this.ajax/settings.beforeSend()
scripts.all.js:227
.ajax()
scripts.all.js:4
nette/this.ajax()
scripts.all.js:237
nette/inner.requestHandler()
scripts.all.js:60
n.event.dispatch()
scripts.all.js:3
n.event.add/r.handle()
scripts.all.js:3
n.event.trigger()
scripts.all.js:3
.triggerHandler()
scripts.all.js:3
.before()
scripts.all.js:330
nette/inner.fire/<()
scripts.all.js:54
.each()
scripts.all.js:2
nette/inner.fire()
scripts.all.js:52
nette/this.ajax/settings.beforeSend()
scripts.all.js:227
.ajax()
scripts.all.js:4
nette/this.ajax()
scripts.all.js:237
nette/inner.requestHandler()
scripts.all.js:60
n.event.dispatch()
scripts.all.js:3
n.event.add/r.handle()
scripts.all.js:3
n.event.trigger()
scripts.all.js:3
.triggerHandler()
scripts.all.js:3
.before()
scripts.all.js:330
nette/inner.fire/<()
scripts.all.js:54
.each()
scripts.all.js:2
nette/inner.fire()
scripts.all.js:52
nette/this.ajax/settings.beforeSend()
scripts.all.js:227
.ajax()
scripts.all.js:4
nette/this.ajax()
scripts.all.js:237
nette/inner.requestHandler()
scripts.all.js:60
n.event.dispatch()
scripts.all.js:3
n.event.add/r.handle()
scripts.all.js:3
n.event.trigger()
scripts.all.js:3
.triggerHandler()
scripts.all.js:3
.before()
scripts.all.js:330
nette/inner.fire/<()
scripts.all.js:54
.each()
scripts.all.js:2
nette/inner.fire()
scripts.all.js:52
nette/this.ajax/settings.beforeSend()
scripts.all.js:227
.ajax()
scripts.all.js:4
nette/this.ajax()
scripts.all.js:237
nette/inner.requestHandler()
scripts.all.js:60
n.event.dispatch()
scripts.all.js:3
n.event.add/r.handle()
scripts.all.js:3
n.event.trigger()
scripts.all.js:3
.triggerHandler()
scripts.all.js:3
.before()
scripts.all.js:330
nette/inner.fire/<()
scripts.all.js:54
.each()
scripts.all.js:2
nette/inner.fire()
scripts.all.js:52
nette/this.ajax/settings.beforeSend()
scripts.all.js:227
.ajax()
scripts.all.js:4
nette/this.ajax()
scripts.all.js:237
nette/inner.requestHandler()
scripts.all.js:60
n.event.dispatch()
scripts.all.js:3
n.event.add/r.handle()
scripts.all.js:3
n.event.trigger()
scripts.all.js:3
.triggerHandler()

Second stack trace:

n.event.dispatch()
scripts.all.js:3
n.event.add/r.handle()
scripts.all.js:3
n.event.trigger()
scripts.all.js:3
.triggerHandler()
scripts.all.js:3
.before()
scripts.all.js:330
nette/inner.fire/<()
scripts.all.js:54
.each()
scripts.all.js:2
nette/inner.fire()
scripts.all.js:52
nette/this.ajax/settings.beforeSend()
scripts.all.js:227
.ajax()
scripts.all.js:4
nette/this.ajax()
scripts.all.js:237
nette/inner.requestHandler()
scripts.all.js:60
n.event.dispatch()
scripts.all.js:3
n.event.add/r.handle()
scripts.all.js:3
n.event.trigger()
scripts.all.js:3
.triggerHandler()
scripts.all.js:3
.before()
scripts.all.js:330
nette/inner.fire/<()
scripts.all.js:54
.each()
scripts.all.js:2
nette/inner.fire()
scripts.all.js:52
nette/this.ajax/settings.beforeSend()
scripts.all.js:227
.ajax()
scripts.all.js:4
nette/this.ajax()
scripts.all.js:237
nette/inner.requestHandler()
scripts.all.js:60
n.event.dispatch()
scripts.all.js:3
n.event.add/r.handle()
scripts.all.js:3
n.event.trigger()
scripts.all.js:3
.triggerHandler()
scripts.all.js:3
.before()
scripts.all.js:330
nette/inner.fire/<()
scripts.all.js:54
.each()
scripts.all.js:2
nette/inner.fire()
scripts.all.js:52
nette/this.ajax/settings.beforeSend()
scripts.all.js:227
.ajax()
scripts.all.js:4
nette/this.ajax()
scripts.all.js:237
nette/inner.requestHandler()
scripts.all.js:60
n.event.dispatch()
scripts.all.js:3
n.event.add/r.handle()
scripts.all.js:3
n.event.trigger()
scripts.all.js:3
.triggerHandler()
scripts.all.js:3
.before()
scripts.all.js:330
nette/inner.fire/<()
scripts.all.js:54
.each()
scripts.all.js:2
nette/inner.fire()
scripts.all.js:52
nette/this.ajax/settings.beforeSend()
scripts.all.js:227
.ajax()
scripts.all.js:4
nette/this.ajax()
scripts.all.js:237
nette/inner.requestHandler()
scripts.all.js:60
n.event.dispatch()
scripts.all.js:3
n.event.add/r.handle()
scripts.all.js:3
n.event.trigger()
scripts.all.js:3
.triggerHandler()
scripts.all.js:3
.before()
scripts.all.js:330
nette/inner.fire/<()
scripts.all.js:54
.each()
scripts.all.js:2
nette/inner.fire()
scripts.all.js:52
nette/this.ajax/settings.beforeSend()
scripts.all.js:227
.ajax()
scripts.all.js:4
nette/this.ajax()
scripts.all.js:237
nette/inner.requestHandler()
scripts.all.js:60
n.event.dispatch()
scripts.all.js:3
n.event.add/r.handle()
scripts.all.js:3
n.event.trigger()
scripts.all.js:3
.triggerHandler()
scripts.all.js:3
.before()
scripts.all.js:330
nette/inner.fire/<()
scripts.all.js:54
.each()
scripts.all.js:2
nette/inner.fire()
scripts.all.js:52
nette/this.ajax/settings.beforeSend()
scripts.all.js:227
.ajax()
scripts.all.js:4
nette/this.ajax()
scripts.all.js:237
nette/inner.requestHandler()
scripts.all.js:60
n.event.dispatch()
scripts.all.js:3
n.event.add/r.handle()
scripts.all.js:3
n.event.trigger()
scripts.all.js:3
.triggerHandler()
scripts.all.js:3
.before()
scripts.all.js:330
nette/inner.fire/<()
scripts.all.js:54
.each()
scripts.all.js:2
nette/inner.fire()
scripts.all.js:52
nette/this.ajax/settings.beforeSend()
scripts.all.js:227
.ajax()
scripts.all.js:4
nette/this.ajax()
scripts.all.js:237
nette/inner.requestHandler()
scripts.all.js:60
n.event.dispatch()
scripts.all.js:3
n.event.add/r.handle()
scripts.all.js:3
n.event.trigger()
scripts.all.js:3
.triggerHandler()
scripts.all.js:3
.before()
scripts.all.js:330
nette/inner.fire/<()
scripts.all.js:54
.each()
scripts.all.js:2
nette/inner.fire()
scripts.all.js:52
nette/this.ajax/settings.beforeSend()
scripts.all.js:227
.ajax()
scripts.all.js:4
nette/this.ajax()
scripts.all.js:237
nette/inner.requestHandler()
scripts.all.js:60
n.event.dispatch()
scripts.all.js:3
n.event.add/r.handle()
scripts.all.js:3
n.event.trigger()
scripts.all.js:3
.triggerHandler()
scripts.all.js:3
.before()
scripts.all.js:330
nette/inner.fire/<()
scripts.all.js:54
.each()
scripts.all.js:2
nette/inner.fire()
scripts.all.js:52
nette/this.ajax/settings.beforeSend()
scripts.all.js:227
.ajax()
scripts.all.js:4
nette/this.ajax()
scripts.all.js:237
nette/inner.requestHandler()
scripts.all.js:60
n.event.dispatch()
scripts.all.js:3
n.event.add/r.handle()
scripts.all.js:3
n.event.trigger()
scripts.all.js:3
.triggerHandler()
scripts.all.js:3
.before()
scripts.all.js:330
nette/inner.fire/<()
scripts.all.js:54
.each()
scripts.all.js:2
nette/inner.fire()
scripts.all.js:52
nette/this.ajax/settings.beforeSend()
scripts.all.js:227
.ajax()
scripts.all.js:4
nette/this.ajax()
scripts.all.js:237
nette/inner.requestHandler()
scripts.all.js:60
n.event.dispatch()
scripts.all.js:3
n.event.add/r.handle()
scripts.all.js:3
n.event.trigger()
scripts.all.js:3
.triggerHandler()
scripts.all.js:3
.before()
scripts.all.js:330
nette/inner.fire/<()
scripts.all.js:54
.each()
scripts.all.js:2
nette/inner.fire()
PingusPepan commented 7 years ago

I believe it was caused by update of nette.ajax.js to version 2.2.0 which was released recently. Can you try #135 and see if it works and fixes the issue?

senasi commented 7 years ago

Hello guys, we are experiencing same problems after upgrading from 2.1 to 2.2.

Chrome dev tools:

Uncaught RangeError: Maximum call stack size exceeded

Firebug:

too much recursion

It's happening on several ajax calls in our project, but not on all of them. I don't have time to debug this more now, so we fixed it by downgrading back to 2.1.

matoni555 commented 7 years ago

Try to use latest version of netteForms.js I think older version causes this error.

repli2dev commented 7 years ago

@matoni555 We are not using netteForms.js in our project, so that should not be the source of problems (we are using live validation).

@PingusPepan this seems to solve the problems.

romanmatyus commented 7 years ago

@PingusPepan solve the problem. ;)

vojtech-dobes commented 7 years ago

Fix by @PingusPepan is merged now.