var state = this._state[stateId]; state.requestParts = []; var reqData = state.requestData; var urlLength = state.serverUrl.length; var partLength = this.urlLimit - urlLength; var reqIndex = 0; while((reqData.length - reqIndex) + urlLength > this.urlLimit){ var part = reqData.substring(reqIndex, reqIndex + partLength); //Safari will do some extra hex escaping unless we keep the original hex //escaping complete. var percentIndex = part.lastIndexOf("%"); if(percentIndex == part.length - 1 || percentIndex == part.length - 2){ part = part.substring(0, percentIndex); } state.requestParts.push(part); reqIndex += part.length; } state.requestParts.push(reqData.substring(reqIndex, reqData.length)); state.partIndex = 0; this.sendRequestPart(stateId);