Я использую AJAX для отправки коллекции, связанной с JSON. Он декодируется, проверяется и сохраняется на сеансе.Coffescript, Backbone - jQuery.ajax done callback function scope
Он работает в Firefox - $ _SESSION ['key'] доступен, он не работает в Chrome.
Я думаю, что проблема с AJAX сделана стрельбой слишком быстро, когда я использую window.location.href = 'checkout'. Я хотел исправить это, но я не могу войти из сделанного обратного вызова или из метода ajaxdone.
Я не понимаю, почему добавление '=>' не помогает. Он кэширует весь объект до этого, не так ли?
send: (data) ->
console.log this
jQuery
.ajax({
type: "POST",
url: 'checkout',
data: {order: data},
dataType: 'json',
done: (data) =>
this.ajaxdone()
})
this
ajaxdone: ->
#window.location.href = 'checkout'
console.log this
Вы должны «откормить» другой стрелки: 'отправить: (данные) =>' – Tallmaris
Вы должны лучше использовать Магистральные методы вместо переписывания собственных вызовов/обратных вызовов ajax [вы можете, например, переопределить метод синхронизации). – moonwave99
@ moonwave99 Думаю, я должен, но реальный вопрос: что мне делать, чтобы успешно выполнить console.log изнутри обратного вызова? Мне показалось, что я понимаю, как работает JS, кажется, нет. –