我正在尝试对在 POST 请求中作为参数传递的 URL 进行编码。URL 包含“+”字符,而 javascript 的 encodeURIComponent() 似乎没有对这些字符进行编码。知道为什么会这样吗?
代码:
var url = "http://........"
url += "&url=" + encodeURIComponent(params.url);
var deferred = dojo.xhrPost({
url: url,
headers: { "X-Requested-With": null },
sync: true,
load: function(responseObject, ioArgs) {
console.info(".....................");
params.onSuccess();
},
error: function(error) {
console.error("Error uploading image" + error);
params.onError();
}
});
实际网址:
http://......../images/I/41zMWkv3+9L._CLa|500,500|41c4imMJhOL.jpg,31PAFct+UsL.jpg_.jpg
编码网址:
http://......../images/I/41zMWkv3+9L._CLa%7C500,500%7C41c4imMJhOL.jpg,31PAFct+UsL.jpg_.jpg
'|' 字符被编码,但不是'+'。
这导致在服务器端将 URL 解码为以下 URL('+' 替换为 ''):
http://......../images/I/41zMWkv3 9L._CLa|500,500|41c4imMJhOL.jpg,31PAFct UsL.jpg_.jpg
我将不胜感激。
谢谢