Handle XHR response error #137
63
index.js
@@ -142,6 +142,8 @@ Pjax.prototype = {
|
||||
|
||||
doRequest: require("./lib/send-request.js"),
|
||||
|
||||
handleResponse: require("./lib/proto/handle-response.js"),
|
||||
|
||||
loadUrl: function(href, options) {
|
||||
options = typeof options === "object" ?
|
||||
extend({}, this.options, options) :
|
||||
@@ -155,66 +157,7 @@ Pjax.prototype = {
|
||||
trigger(document, "pjax:send", options)
|
||||
|
||||
// Do the request
|
||||
this.request = this.doRequest(href, options, function(html, request) {
|
||||
// Fail if unable to load HTML via AJAX
|
||||
if (html === false) {
|
||||
trigger(document, "pjax:complete pjax:error", options)
|
||||
|
||||
return
|
||||
}
|
||||
|
||||
// push scroll position to history
|
||||
var currentState = window.history.state || {}
|
||||
window.history.replaceState({
|
||||
url: currentState.url || window.location.href,
|
||||
title: currentState.title || document.title,
|
||||
uid: currentState.uid || newUid(),
|
||||
scrollPos: [document.documentElement.scrollLeft || document.body.scrollLeft,
|
||||
document.documentElement.scrollTop || document.body.scrollTop]
|
||||
},
|
||||
document.title, window.location)
|
||||
|
||||
var oldHref = href
|
||||
if (request.responseURL) {
|
||||
if (href !== request.responseURL) {
|
||||
href = request.responseURL
|
||||
}
|
||||
}
|
||||
else if (request.getResponseHeader("X-PJAX-URL")) {
|
||||
href = request.getResponseHeader("X-PJAX-URL")
|
||||
}
|
||||
else if (request.getResponseHeader("X-XHR-Redirected-To")) {
|
||||
href = request.getResponseHeader("X-XHR-Redirected-To")
|
||||
}
|
||||
|
||||
// Add back the hash if it was removed
|
||||
var a = document.createElement("a")
|
||||
a.href = oldHref
|
||||
var oldHash = a.hash
|
||||
a.href = href
|
||||
if (oldHash && !a.hash) {
|
||||
a.hash = oldHash
|
||||
href = a.href
|
||||
}
|
||||
|
||||
this.state.href = href
|
||||
this.state.options = clone(options)
|
||||
|
||||
try {
|
||||
this.loadContent(html, options)
|
||||
}
|
||||
catch (e) {
|
||||
if (!this.options.debug) {
|
||||
if (console && console.error) {
|
||||
console.error("Pjax switch fail: ", e)
|
||||
}
|
||||
return this.latestChance(href)
|
||||
}
|
||||
else {
|
||||
throw e
|
||||
}
|
||||
}
|
||||
}.bind(this))
|
||||
this.request = this.doRequest(href, options, this.handleResponse.bind(this))
|
||||
},
|
||||
|
||||
afterAllSwitches: function() {
|
||||
|
||||
65
lib/proto/handle-response.js
Normal file
@@ -0,0 +1,65 @@
|
||||
|
|
||||
var clone = require("./lib/clone.js")
|
||||
|
This needs to be This needs to be `tempOptions = clone(this.options)`, or you'll mutate the current instance's options
This also needs to clone This also needs to clone `this.options`, but you could probably just do this once at the top of the method rather than repeating the assignment of the request to your temporary event options.
Good point. Good point.
Good point. Good point.
|
||||
var newUid = require("./lib/uniqueid.js")
|
||||
|
This needs to be This needs to be `tempOptions = clone(this.options)`, or you'll mutate the current instance's options
This also needs to clone This also needs to clone `this.options`, but you could probably just do this once at the top of the method rather than repeating the assignment of the request to your temporary event options.
Good point. Good point.
Good point. Good point.
|
||||
var trigger = require("./lib/events/trigger.js")
|
||||
|
This needs to be This needs to be `tempOptions = clone(this.options)`, or you'll mutate the current instance's options
This also needs to clone This also needs to clone `this.options`, but you could probably just do this once at the top of the method rather than repeating the assignment of the request to your temporary event options.
Good point. Good point.
Good point. Good point.
|
||||
|
||||
|
This needs to be This needs to be `tempOptions = clone(this.options)`, or you'll mutate the current instance's options
This also needs to clone This also needs to clone `this.options`, but you could probably just do this once at the top of the method rather than repeating the assignment of the request to your temporary event options.
Good point. Good point.
Good point. Good point.
|
||||
module.export = function(responseText, request, href) {
|
||||
|
This needs to be This needs to be `tempOptions = clone(this.options)`, or you'll mutate the current instance's options
This also needs to clone This also needs to clone `this.options`, but you could probably just do this once at the top of the method rather than repeating the assignment of the request to your temporary event options.
Good point. Good point.
Good point. Good point.
|
||||
// Fail if unable to load HTML via AJAX
|
||||
|
This needs to be This needs to be `tempOptions = clone(this.options)`, or you'll mutate the current instance's options
This also needs to clone This also needs to clone `this.options`, but you could probably just do this once at the top of the method rather than repeating the assignment of the request to your temporary event options.
Good point. Good point.
Good point. Good point.
|
||||
if (responseText === false) {
|
||||
|
This needs to be This needs to be `tempOptions = clone(this.options)`, or you'll mutate the current instance's options
This also needs to clone This also needs to clone `this.options`, but you could probably just do this once at the top of the method rather than repeating the assignment of the request to your temporary event options.
Good point. Good point.
Good point. Good point.
|
||||
trigger(document, "pjax:complete pjax:error", this.options)
|
||||
|
This needs to be This needs to be `tempOptions = clone(this.options)`, or you'll mutate the current instance's options
This also needs to clone This also needs to clone `this.options`, but you could probably just do this once at the top of the method rather than repeating the assignment of the request to your temporary event options.
Good point. Good point.
Good point. Good point.
|
||||
|
||||
|
This needs to be This needs to be `tempOptions = clone(this.options)`, or you'll mutate the current instance's options
This also needs to clone This also needs to clone `this.options`, but you could probably just do this once at the top of the method rather than repeating the assignment of the request to your temporary event options.
Good point. Good point.
Good point. Good point.
|
||||
return
|
||||
|
This needs to be This needs to be `tempOptions = clone(this.options)`, or you'll mutate the current instance's options
This also needs to clone This also needs to clone `this.options`, but you could probably just do this once at the top of the method rather than repeating the assignment of the request to your temporary event options.
Good point. Good point.
Good point. Good point.
|
||||
}
|
||||
|
This needs to be This needs to be `tempOptions = clone(this.options)`, or you'll mutate the current instance's options
This also needs to clone This also needs to clone `this.options`, but you could probably just do this once at the top of the method rather than repeating the assignment of the request to your temporary event options.
Good point. Good point.
Good point. Good point.
|
||||
|
||||
|
This needs to be This needs to be `tempOptions = clone(this.options)`, or you'll mutate the current instance's options
This also needs to clone This also needs to clone `this.options`, but you could probably just do this once at the top of the method rather than repeating the assignment of the request to your temporary event options.
Good point. Good point.
Good point. Good point.
|
||||
// push scroll position to history
|
||||
|
This needs to be This needs to be `tempOptions = clone(this.options)`, or you'll mutate the current instance's options
This also needs to clone This also needs to clone `this.options`, but you could probably just do this once at the top of the method rather than repeating the assignment of the request to your temporary event options.
Good point. Good point.
Good point. Good point.
|
||||
var currentState = window.history.state || {}
|
||||
|
This needs to be This needs to be `tempOptions = clone(this.options)`, or you'll mutate the current instance's options
This also needs to clone This also needs to clone `this.options`, but you could probably just do this once at the top of the method rather than repeating the assignment of the request to your temporary event options.
Good point. Good point.
Good point. Good point.
|
||||
window.history.replaceState({
|
||||
|
This needs to be This needs to be `tempOptions = clone(this.options)`, or you'll mutate the current instance's options
This also needs to clone This also needs to clone `this.options`, but you could probably just do this once at the top of the method rather than repeating the assignment of the request to your temporary event options.
Good point. Good point.
Good point. Good point.
|
||||
url: currentState.url || window.location.href,
|
||||
|
This needs to be This needs to be `tempOptions = clone(this.options)`, or you'll mutate the current instance's options
This also needs to clone This also needs to clone `this.options`, but you could probably just do this once at the top of the method rather than repeating the assignment of the request to your temporary event options.
Good point. Good point.
Good point. Good point.
|
||||
title: currentState.title || document.title,
|
||||
|
This needs to be This needs to be `tempOptions = clone(this.options)`, or you'll mutate the current instance's options
This also needs to clone This also needs to clone `this.options`, but you could probably just do this once at the top of the method rather than repeating the assignment of the request to your temporary event options.
Good point. Good point.
Good point. Good point.
|
||||
uid: currentState.uid || newUid(),
|
||||
|
This needs to be This needs to be `tempOptions = clone(this.options)`, or you'll mutate the current instance's options
This also needs to clone This also needs to clone `this.options`, but you could probably just do this once at the top of the method rather than repeating the assignment of the request to your temporary event options.
Good point. Good point.
Good point. Good point.
|
||||
scrollPos: [document.documentElement.scrollLeft || document.body.scrollLeft,
|
||||
|
This needs to be This needs to be `tempOptions = clone(this.options)`, or you'll mutate the current instance's options
This also needs to clone This also needs to clone `this.options`, but you could probably just do this once at the top of the method rather than repeating the assignment of the request to your temporary event options.
Good point. Good point.
Good point. Good point.
|
||||
document.documentElement.scrollTop || document.body.scrollTop]
|
||||
|
This needs to be This needs to be `tempOptions = clone(this.options)`, or you'll mutate the current instance's options
This also needs to clone This also needs to clone `this.options`, but you could probably just do this once at the top of the method rather than repeating the assignment of the request to your temporary event options.
Good point. Good point.
Good point. Good point.
|
||||
},
|
||||
|
This needs to be This needs to be `tempOptions = clone(this.options)`, or you'll mutate the current instance's options
This also needs to clone This also needs to clone `this.options`, but you could probably just do this once at the top of the method rather than repeating the assignment of the request to your temporary event options.
Good point. Good point.
Good point. Good point.
|
||||
document.title, window.location)
|
||||
|
This needs to be This needs to be `tempOptions = clone(this.options)`, or you'll mutate the current instance's options
This also needs to clone This also needs to clone `this.options`, but you could probably just do this once at the top of the method rather than repeating the assignment of the request to your temporary event options.
Good point. Good point.
Good point. Good point.
|
||||
|
||||
|
This needs to be This needs to be `tempOptions = clone(this.options)`, or you'll mutate the current instance's options
This also needs to clone This also needs to clone `this.options`, but you could probably just do this once at the top of the method rather than repeating the assignment of the request to your temporary event options.
Good point. Good point.
Good point. Good point.
|
||||
// Check for redirects
|
||||
|
This needs to be This needs to be `tempOptions = clone(this.options)`, or you'll mutate the current instance's options
This also needs to clone This also needs to clone `this.options`, but you could probably just do this once at the top of the method rather than repeating the assignment of the request to your temporary event options.
Good point. Good point.
Good point. Good point.
|
||||
var oldHref = href
|
||||
|
This needs to be This needs to be `tempOptions = clone(this.options)`, or you'll mutate the current instance's options
This also needs to clone This also needs to clone `this.options`, but you could probably just do this once at the top of the method rather than repeating the assignment of the request to your temporary event options.
Good point. Good point.
Good point. Good point.
|
||||
if (request.responseURL) {
|
||||
|
This needs to be This needs to be `tempOptions = clone(this.options)`, or you'll mutate the current instance's options
This also needs to clone This also needs to clone `this.options`, but you could probably just do this once at the top of the method rather than repeating the assignment of the request to your temporary event options.
Good point. Good point.
Good point. Good point.
|
||||
if (href !== request.responseURL) {
|
||||
|
This needs to be This needs to be `tempOptions = clone(this.options)`, or you'll mutate the current instance's options
This also needs to clone This also needs to clone `this.options`, but you could probably just do this once at the top of the method rather than repeating the assignment of the request to your temporary event options.
Good point. Good point.
Good point. Good point.
|
||||
href = request.responseURL
|
||||
|
This needs to be This needs to be `tempOptions = clone(this.options)`, or you'll mutate the current instance's options
This also needs to clone This also needs to clone `this.options`, but you could probably just do this once at the top of the method rather than repeating the assignment of the request to your temporary event options.
Good point. Good point.
Good point. Good point.
|
||||
}
|
||||
|
This needs to be This needs to be `tempOptions = clone(this.options)`, or you'll mutate the current instance's options
This also needs to clone This also needs to clone `this.options`, but you could probably just do this once at the top of the method rather than repeating the assignment of the request to your temporary event options.
Good point. Good point.
Good point. Good point.
|
||||
}
|
||||
|
This needs to be This needs to be `tempOptions = clone(this.options)`, or you'll mutate the current instance's options
This also needs to clone This also needs to clone `this.options`, but you could probably just do this once at the top of the method rather than repeating the assignment of the request to your temporary event options.
Good point. Good point.
Good point. Good point.
|
||||
else if (request.getResponseHeader("X-PJAX-URL")) {
|
||||
|
This needs to be This needs to be `tempOptions = clone(this.options)`, or you'll mutate the current instance's options
This also needs to clone This also needs to clone `this.options`, but you could probably just do this once at the top of the method rather than repeating the assignment of the request to your temporary event options.
Good point. Good point.
Good point. Good point.
|
||||
href = request.getResponseHeader("X-PJAX-URL")
|
||||
|
This needs to be This needs to be `tempOptions = clone(this.options)`, or you'll mutate the current instance's options
This also needs to clone This also needs to clone `this.options`, but you could probably just do this once at the top of the method rather than repeating the assignment of the request to your temporary event options.
Good point. Good point.
Good point. Good point.
|
||||
}
|
||||
|
This needs to be This needs to be `tempOptions = clone(this.options)`, or you'll mutate the current instance's options
This also needs to clone This also needs to clone `this.options`, but you could probably just do this once at the top of the method rather than repeating the assignment of the request to your temporary event options.
Good point. Good point.
Good point. Good point.
|
||||
else if (request.getResponseHeader("X-XHR-Redirected-To")) {
|
||||
|
This needs to be This needs to be `tempOptions = clone(this.options)`, or you'll mutate the current instance's options
This also needs to clone This also needs to clone `this.options`, but you could probably just do this once at the top of the method rather than repeating the assignment of the request to your temporary event options.
Good point. Good point.
Good point. Good point.
|
||||
href = request.getResponseHeader("X-XHR-Redirected-To")
|
||||
|
This needs to be This needs to be `tempOptions = clone(this.options)`, or you'll mutate the current instance's options
This also needs to clone This also needs to clone `this.options`, but you could probably just do this once at the top of the method rather than repeating the assignment of the request to your temporary event options.
Good point. Good point.
Good point. Good point.
|
||||
}
|
||||
|
This needs to be This needs to be `tempOptions = clone(this.options)`, or you'll mutate the current instance's options
This also needs to clone This also needs to clone `this.options`, but you could probably just do this once at the top of the method rather than repeating the assignment of the request to your temporary event options.
Good point. Good point.
Good point. Good point.
|
||||
|
||||
|
This needs to be This needs to be `tempOptions = clone(this.options)`, or you'll mutate the current instance's options
This also needs to clone This also needs to clone `this.options`, but you could probably just do this once at the top of the method rather than repeating the assignment of the request to your temporary event options.
Good point. Good point.
Good point. Good point.
|
||||
// Add back the hash if it was removed
|
||||
|
This needs to be This needs to be `tempOptions = clone(this.options)`, or you'll mutate the current instance's options
This also needs to clone This also needs to clone `this.options`, but you could probably just do this once at the top of the method rather than repeating the assignment of the request to your temporary event options.
Good point. Good point.
Good point. Good point.
|
||||
var a = document.createElement("a")
|
||||
|
This needs to be This needs to be `tempOptions = clone(this.options)`, or you'll mutate the current instance's options
This also needs to clone This also needs to clone `this.options`, but you could probably just do this once at the top of the method rather than repeating the assignment of the request to your temporary event options.
Good point. Good point.
Good point. Good point.
|
||||
a.href = oldHref
|
||||
|
This needs to be This needs to be `tempOptions = clone(this.options)`, or you'll mutate the current instance's options
This also needs to clone This also needs to clone `this.options`, but you could probably just do this once at the top of the method rather than repeating the assignment of the request to your temporary event options.
Good point. Good point.
Good point. Good point.
|
||||
var oldHash = a.hash
|
||||
|
This needs to be This needs to be `tempOptions = clone(this.options)`, or you'll mutate the current instance's options
This also needs to clone This also needs to clone `this.options`, but you could probably just do this once at the top of the method rather than repeating the assignment of the request to your temporary event options.
Good point. Good point.
Good point. Good point.
|
||||
a.href = href
|
||||
|
This needs to be This needs to be `tempOptions = clone(this.options)`, or you'll mutate the current instance's options
This also needs to clone This also needs to clone `this.options`, but you could probably just do this once at the top of the method rather than repeating the assignment of the request to your temporary event options.
Good point. Good point.
Good point. Good point.
|
||||
if (oldHash && !a.hash) {
|
||||
|
This needs to be This needs to be `tempOptions = clone(this.options)`, or you'll mutate the current instance's options
This also needs to clone This also needs to clone `this.options`, but you could probably just do this once at the top of the method rather than repeating the assignment of the request to your temporary event options.
Good point. Good point.
Good point. Good point.
|
||||
a.hash = oldHash
|
||||
|
This needs to be This needs to be `tempOptions = clone(this.options)`, or you'll mutate the current instance's options
This also needs to clone This also needs to clone `this.options`, but you could probably just do this once at the top of the method rather than repeating the assignment of the request to your temporary event options.
Good point. Good point.
Good point. Good point.
|
||||
href = a.href
|
||||
|
This needs to be This needs to be `tempOptions = clone(this.options)`, or you'll mutate the current instance's options
This also needs to clone This also needs to clone `this.options`, but you could probably just do this once at the top of the method rather than repeating the assignment of the request to your temporary event options.
Good point. Good point.
Good point. Good point.
|
||||
}
|
||||
|
This needs to be This needs to be `tempOptions = clone(this.options)`, or you'll mutate the current instance's options
This also needs to clone This also needs to clone `this.options`, but you could probably just do this once at the top of the method rather than repeating the assignment of the request to your temporary event options.
Good point. Good point.
Good point. Good point.
|
||||
|
||||
|
This needs to be This needs to be `tempOptions = clone(this.options)`, or you'll mutate the current instance's options
This also needs to clone This also needs to clone `this.options`, but you could probably just do this once at the top of the method rather than repeating the assignment of the request to your temporary event options.
Good point. Good point.
Good point. Good point.
|
||||
this.state.href = href
|
||||
|
This needs to be This needs to be `tempOptions = clone(this.options)`, or you'll mutate the current instance's options
This also needs to clone This also needs to clone `this.options`, but you could probably just do this once at the top of the method rather than repeating the assignment of the request to your temporary event options.
Good point. Good point.
Good point. Good point.
|
||||
this.state.options = clone(this.options)
|
||||
|
This needs to be This needs to be `tempOptions = clone(this.options)`, or you'll mutate the current instance's options
This also needs to clone This also needs to clone `this.options`, but you could probably just do this once at the top of the method rather than repeating the assignment of the request to your temporary event options.
Good point. Good point.
Good point. Good point.
|
||||
|
||||
|
This needs to be This needs to be `tempOptions = clone(this.options)`, or you'll mutate the current instance's options
This also needs to clone This also needs to clone `this.options`, but you could probably just do this once at the top of the method rather than repeating the assignment of the request to your temporary event options.
Good point. Good point.
Good point. Good point.
|
||||
try {
|
||||
|
This needs to be This needs to be `tempOptions = clone(this.options)`, or you'll mutate the current instance's options
This also needs to clone This also needs to clone `this.options`, but you could probably just do this once at the top of the method rather than repeating the assignment of the request to your temporary event options.
Good point. Good point.
Good point. Good point.
|
||||
this.loadContent(responseText, this.options)
|
||||
|
This needs to be This needs to be `tempOptions = clone(this.options)`, or you'll mutate the current instance's options
This also needs to clone This also needs to clone `this.options`, but you could probably just do this once at the top of the method rather than repeating the assignment of the request to your temporary event options.
Good point. Good point.
Good point. Good point.
|
||||
}
|
||||
|
This needs to be This needs to be `tempOptions = clone(this.options)`, or you'll mutate the current instance's options
This also needs to clone This also needs to clone `this.options`, but you could probably just do this once at the top of the method rather than repeating the assignment of the request to your temporary event options.
Good point. Good point.
Good point. Good point.
|
||||
catch (e) {
|
||||
|
This needs to be This needs to be `tempOptions = clone(this.options)`, or you'll mutate the current instance's options
This also needs to clone This also needs to clone `this.options`, but you could probably just do this once at the top of the method rather than repeating the assignment of the request to your temporary event options.
Good point. Good point.
Good point. Good point.
|
||||
if (!this.options.debug) {
|
||||
|
This needs to be This needs to be `tempOptions = clone(this.options)`, or you'll mutate the current instance's options
This also needs to clone This also needs to clone `this.options`, but you could probably just do this once at the top of the method rather than repeating the assignment of the request to your temporary event options.
Good point. Good point.
Good point. Good point.
|
||||
if (console && console.error) {
|
||||
|
This needs to be This needs to be `tempOptions = clone(this.options)`, or you'll mutate the current instance's options
This also needs to clone This also needs to clone `this.options`, but you could probably just do this once at the top of the method rather than repeating the assignment of the request to your temporary event options.
Good point. Good point.
Good point. Good point.
|
||||
console.error("Pjax switch fail: ", e)
|
||||
|
This needs to be This needs to be `tempOptions = clone(this.options)`, or you'll mutate the current instance's options
This also needs to clone This also needs to clone `this.options`, but you could probably just do this once at the top of the method rather than repeating the assignment of the request to your temporary event options.
Good point. Good point.
Good point. Good point.
|
||||
}
|
||||
|
This needs to be This needs to be `tempOptions = clone(this.options)`, or you'll mutate the current instance's options
This also needs to clone This also needs to clone `this.options`, but you could probably just do this once at the top of the method rather than repeating the assignment of the request to your temporary event options.
Good point. Good point.
Good point. Good point.
|
||||
return this.latestChance(href)
|
||||
|
This needs to be This needs to be `tempOptions = clone(this.options)`, or you'll mutate the current instance's options
This also needs to clone This also needs to clone `this.options`, but you could probably just do this once at the top of the method rather than repeating the assignment of the request to your temporary event options.
Good point. Good point.
Good point. Good point.
|
||||
}
|
||||
|
This needs to be This needs to be `tempOptions = clone(this.options)`, or you'll mutate the current instance's options
This also needs to clone This also needs to clone `this.options`, but you could probably just do this once at the top of the method rather than repeating the assignment of the request to your temporary event options.
Good point. Good point.
Good point. Good point.
|
||||
else {
|
||||
|
This needs to be This needs to be `tempOptions = clone(this.options)`, or you'll mutate the current instance's options
This also needs to clone This also needs to clone `this.options`, but you could probably just do this once at the top of the method rather than repeating the assignment of the request to your temporary event options.
Good point. Good point.
Good point. Good point.
|
||||
throw e
|
||||
|
This needs to be This needs to be `tempOptions = clone(this.options)`, or you'll mutate the current instance's options
This also needs to clone This also needs to clone `this.options`, but you could probably just do this once at the top of the method rather than repeating the assignment of the request to your temporary event options.
Good point. Good point.
Good point. Good point.
|
||||
}
|
||||
|
This needs to be This needs to be `tempOptions = clone(this.options)`, or you'll mutate the current instance's options
This also needs to clone This also needs to clone `this.options`, but you could probably just do this once at the top of the method rather than repeating the assignment of the request to your temporary event options.
Good point. Good point.
Good point. Good point.
|
||||
}
|
||||
|
This needs to be This needs to be `tempOptions = clone(this.options)`, or you'll mutate the current instance's options
This also needs to clone This also needs to clone `this.options`, but you could probably just do this once at the top of the method rather than repeating the assignment of the request to your temporary event options.
Good point. Good point.
Good point. Good point.
|
||||
}
|
||||
|
This needs to be This needs to be `tempOptions = clone(this.options)`, or you'll mutate the current instance's options
This also needs to clone This also needs to clone `this.options`, but you could probably just do this once at the top of the method rather than repeating the assignment of the request to your temporary event options.
Good point. Good point.
Good point. Good point.
|
||||
@@ -13,21 +13,21 @@ module.exports = function(location, options, callback) {
|
||||
request.onreadystatechange = function() {
|
||||
if (request.readyState === 4) {
|
||||
if (request.status === 200) {
|
||||
callback(request.responseText, request)
|
||||
callback(request.responseText, request, location)
|
||||
}
|
||||
else {
|
||||
callback(null, request)
|
||||
callback(null, request, location)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
request.onerror = function(e) {
|
||||
console.log(e)
|
||||
callback(null, request)
|
||||
callback(null, request, location)
|
||||
}
|
||||
|
||||
request.ontimeout = function() {
|
||||
callback(null, request)
|
||||
callback(null, request, location)
|
||||
}
|
||||
|
||||
// Prepare the request payload for forms, if available
|
||||
|
||||
This needs to be
tempOptions = clone(this.options), or you'll mutate the current instance's optionsThis needs to be
tempOptions = clone(this.options), or you'll mutate the current instance's optionsThis also needs to clone
this.options, but you could probably just do this once at the top of the method rather than repeating the assignment of the request to your temporary event options.This also needs to clone
this.options, but you could probably just do this once at the top of the method rather than repeating the assignment of the request to your temporary event options.Good point.
Good point.
Good point.
Good point.