Skip to content

Commit 54f38b9

Browse files
author
shengyonggen
committed
增加部分未知异常参数先解码和编码
1 parent eabe11f commit 54f38b9

File tree

9 files changed

+93
-30
lines changed

9 files changed

+93
-30
lines changed

heatmap.min.js

Lines changed: 4 additions & 4 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "sa-sdk-javascript",
3-
"version": "1.9.6",
3+
"version": "1.9.9",
44
"description": "official sensorsdata javascript sdk",
55
"main": "sensorsdata.min.js",
66
"scripts": {

sensorsdata.amd.min.js

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

sensorsdata.min.js

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/heatmap.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8820,7 +8820,7 @@ var heatmap_render = {
88208820

88218821
var urlParse2 = new _.urlParse(sd.para.web_url);
88228822
urlParse2._values.Path = '/api/scroll_heat_map/report/' + id;
8823-
urlParse2.addQueryString({pathUrl:url});
8823+
urlParse2.addQueryString({pathUrl:encodeURIComponent(url)});
88248824
var urlParse2Value = urlParse2.getUrl();
88258825

88268826
_.ajax({
@@ -9109,9 +9109,9 @@ var heatmap_render = {
91099109
urlParse2._values.Path = '/api/heat_map/report/path/' + id;
91109110
var urlParse2Value = urlParse2.getUrl();
91119111
if(urlParse2Value.indexOf('?') === -1){
9112-
urlParse2Value = urlParse2Value + '?pathUrl=' + url;
9112+
urlParse2Value = urlParse2Value + '?pathUrl=' + encodeURIComponent(url);
91139113
}else{
9114-
urlParse2Value = urlParse2Value + '&pathUrl=' + url;
9114+
urlParse2Value = urlParse2Value + '&pathUrl=' + encodeURIComponent(url);
91159115
}
91169116

91179117
if(url){

src/sdk.js

Lines changed: 25 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -235,7 +235,7 @@ _.isJSONString = function(str) {
235235
};
236236
// gbk等编码decode会异常
237237
_.decodeURIComponent = function(val){
238-
var result = '';
238+
var result = val;
239239
try{
240240
result = decodeURIComponent(val);
241241
}catch(e){
@@ -560,6 +560,7 @@ _.UUID = (function() {
560560

561561
_.getQueryParam = function(url, param) {
562562
param = param.replace(/[\[]/, "\\\[").replace(/[\]]/, "\\\]");
563+
url = _.decodeURIComponent(url);
563564
var regexS = "[\\?&]" + param + "=([^&#]*)",
564565
regex = new RegExp(regexS),
565566
results = regex.exec(url);
@@ -1093,6 +1094,7 @@ _.xhr = function(cors) {
10931094
};
10941095

10951096
_.ajax = function(para) {
1097+
para.credentials = (typeof para.credentials) === 'undefined' ? true : para.credentials;
10961098
function getJSON(data) {
10971099
try {
10981100
return JSON.parse(data);
@@ -1127,7 +1129,10 @@ _.ajax = function(para) {
11271129
g.open(para.type, para.url, true);
11281130

11291131
try {
1130-
g.withCredentials = true;
1132+
1133+
if(para.credentials){
1134+
g.withCredentials = true;
1135+
}
11311136

11321137
if (_.isObject(para.header)) {
11331138
for (var i in para.header) {
@@ -1807,16 +1812,32 @@ sd.sendState.stateInfo.prototype.start = function(){
18071812
this.img.src = this.server_url;
18081813
};
18091814

1810-
sd.sendState.ajaxCall = function(){
1811-
// _.ajax({});
18121815

1816+
sd.sendState.beaconCall = function(url,callback){
1817+
1818+
navigator.sendBeacon(url);
1819+
1820+
}
1821+
1822+
sd.sendState.ajaxCall = function(url,callback){
1823+
url = url.replace('https://sensorswww.cloud.sensorsdata.cn:4006/sa.gif?token=6b551cb59b1c1973&data=','https://zhaohaiying.cloud.sensorsdata.cn:4006/sa.gif?token=9d8f18c23084485f&data=');
1824+
_.ajax({
1825+
url: url,
1826+
type: 'GET',
1827+
credentials: false,
1828+
cors:true
1829+
});
18131830
};
18141831

18151832

18161833
sd.sendState.sendCall = function(server_url,callback){
18171834
++this._receive;
18181835
var state = '_state' + this._receive;
18191836
var me = this;
1837+
1838+
// this.ajaxCall(server_url,callback);
1839+
// this.beaconCall(server_url,callback);
1840+
18201841
this[state] = new this.stateInfo({
18211842
callback: callback,
18221843
server_url: server_url,

src/sensorsdata.full.amd.js

Lines changed: 25 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -366,7 +366,7 @@ _.isJSONString = function(str) {
366366
};
367367
// gbk等编码decode会异常
368368
_.decodeURIComponent = function(val){
369-
var result = '';
369+
var result = val;
370370
try{
371371
result = decodeURIComponent(val);
372372
}catch(e){
@@ -691,6 +691,7 @@ _.UUID = (function() {
691691

692692
_.getQueryParam = function(url, param) {
693693
param = param.replace(/[\[]/, "\\\[").replace(/[\]]/, "\\\]");
694+
url = _.decodeURIComponent(url);
694695
var regexS = "[\\?&]" + param + "=([^&#]*)",
695696
regex = new RegExp(regexS),
696697
results = regex.exec(url);
@@ -1224,6 +1225,7 @@ _.xhr = function(cors) {
12241225
};
12251226

12261227
_.ajax = function(para) {
1228+
para.credentials = (typeof para.credentials) === 'undefined' ? true : para.credentials;
12271229
function getJSON(data) {
12281230
try {
12291231
return JSON.parse(data);
@@ -1258,7 +1260,10 @@ _.ajax = function(para) {
12581260
g.open(para.type, para.url, true);
12591261

12601262
try {
1261-
g.withCredentials = true;
1263+
1264+
if(para.credentials){
1265+
g.withCredentials = true;
1266+
}
12621267

12631268
if (_.isObject(para.header)) {
12641269
for (var i in para.header) {
@@ -1938,16 +1943,32 @@ sd.sendState.stateInfo.prototype.start = function(){
19381943
this.img.src = this.server_url;
19391944
};
19401945

1941-
sd.sendState.ajaxCall = function(){
1942-
// _.ajax({});
19431946

1947+
sd.sendState.beaconCall = function(url,callback){
1948+
1949+
navigator.sendBeacon(url);
1950+
1951+
}
1952+
1953+
sd.sendState.ajaxCall = function(url,callback){
1954+
url = url.replace('https://sensorswww.cloud.sensorsdata.cn:4006/sa.gif?token=6b551cb59b1c1973&data=','https://zhaohaiying.cloud.sensorsdata.cn:4006/sa.gif?token=9d8f18c23084485f&data=');
1955+
_.ajax({
1956+
url: url,
1957+
type: 'GET',
1958+
credentials: false,
1959+
cors:true
1960+
});
19441961
};
19451962

19461963

19471964
sd.sendState.sendCall = function(server_url,callback){
19481965
++this._receive;
19491966
var state = '_state' + this._receive;
19501967
var me = this;
1968+
1969+
// this.ajaxCall(server_url,callback);
1970+
// this.beaconCall(server_url,callback);
1971+
19511972
this[state] = new this.stateInfo({
19521973
callback: callback,
19531974
server_url: server_url,

src/sensorsdata.full.js

Lines changed: 25 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -363,7 +363,7 @@ _.isJSONString = function(str) {
363363
};
364364
// gbk等编码decode会异常
365365
_.decodeURIComponent = function(val){
366-
var result = '';
366+
var result = val;
367367
try{
368368
result = decodeURIComponent(val);
369369
}catch(e){
@@ -688,6 +688,7 @@ _.UUID = (function() {
688688

689689
_.getQueryParam = function(url, param) {
690690
param = param.replace(/[\[]/, "\\\[").replace(/[\]]/, "\\\]");
691+
url = _.decodeURIComponent(url);
691692
var regexS = "[\\?&]" + param + "=([^&#]*)",
692693
regex = new RegExp(regexS),
693694
results = regex.exec(url);
@@ -1221,6 +1222,7 @@ _.xhr = function(cors) {
12211222
};
12221223

12231224
_.ajax = function(para) {
1225+
para.credentials = (typeof para.credentials) === 'undefined' ? true : para.credentials;
12241226
function getJSON(data) {
12251227
try {
12261228
return JSON.parse(data);
@@ -1255,7 +1257,10 @@ _.ajax = function(para) {
12551257
g.open(para.type, para.url, true);
12561258

12571259
try {
1258-
g.withCredentials = true;
1260+
1261+
if(para.credentials){
1262+
g.withCredentials = true;
1263+
}
12591264

12601265
if (_.isObject(para.header)) {
12611266
for (var i in para.header) {
@@ -1935,16 +1940,32 @@ sd.sendState.stateInfo.prototype.start = function(){
19351940
this.img.src = this.server_url;
19361941
};
19371942

1938-
sd.sendState.ajaxCall = function(){
1939-
// _.ajax({});
19401943

1944+
sd.sendState.beaconCall = function(url,callback){
1945+
1946+
navigator.sendBeacon(url);
1947+
1948+
}
1949+
1950+
sd.sendState.ajaxCall = function(url,callback){
1951+
url = url.replace('https://sensorswww.cloud.sensorsdata.cn:4006/sa.gif?token=6b551cb59b1c1973&data=','https://zhaohaiying.cloud.sensorsdata.cn:4006/sa.gif?token=9d8f18c23084485f&data=');
1952+
_.ajax({
1953+
url: url,
1954+
type: 'GET',
1955+
credentials: false,
1956+
cors:true
1957+
});
19411958
};
19421959

19431960

19441961
sd.sendState.sendCall = function(server_url,callback){
19451962
++this._receive;
19461963
var state = '_state' + this._receive;
19471964
var me = this;
1965+
1966+
// this.ajaxCall(server_url,callback);
1967+
// this.beaconCall(server_url,callback);
1968+
19481969
this[state] = new this.stateInfo({
19491970
callback: callback,
19501971
server_url: server_url,

vtrack.min.js

Lines changed: 6 additions & 6 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)