karosLi/KKJSBridge

url参数包含中文,利用 requestId 生成新的 url就会有问题

firecolen opened this issue · 5 comments

//利用 requestId 生成新的 url
_KKJSBridgeXHR.generateNewUrlWithRequestId = function (url, requestId) {
...
var search = aTag.search ? aTag.search : "";
...
url = orignAction.replace(search, "").replace(hash, "");
.....
var newAction = url + aTag.search + aTag.hash;
return newAction;
};

如果url的参数包含中文,search拿到的是编码后的数据,replace替换方法就不起作用,客户端拿到的url就存在2个?

你是 POST 包含中文参数?

你有试过 URLEncode 吗

用URLEncode可以解决问题,但是旧项目很多地方存在这种请求,只能在KKJSBridgeAJAXProtocolHook.js统一处理,
var orignAction = encodeURI(decodeURI(url));
这样是否能解决问题呢?

用URLEncode可以解决问题,但是旧项目很多地方存在这种请求,只能在KKJSBridgeAJAXProtocolHook.js统一处理,
var orignAction = encodeURI(decodeURI(url));
这样是否能解决问题呢?