我正在尝试对在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被解码为服务器端下面的一个('+'替换为''):
http://......../images/I/41zMWkv3 9L._CLa|500,500|41c4imMJhOL.jpg,31PAFct UsL.jpg_.jpg
我很感激任何帮助。
由于
答案 0 :(得分:1)
当我使用encodeURIComponent
或decodeURIComponent()
处理此字符+
或反' '
我必须使用replace(" ", "+");
。
我说这是正常的,因为在此网站上查看并使用替换SITE
此网站建议在解码时将{替换为,因为unescape不会
我在+
DEMO
%2B
编码
或使用decodeURIComponent()
,但您不想DEMO
您可以使用var url=document.location.search;
处理变量内部的网址,其中只包含.html
<强> REPEAT:强>
search Returns the query portion of a URL
示例:强>
http://localhost:8100/index2?json_data=demo_title%24+Demo+title+%23+proc1_script%24+
document.location.search
:
?json_data=demo_title%24+Demo+title+%23+proc1_script%24+
使用replace
或其他方法后,您可以使用
document.location.href="index2"+url;
您可以使用index.html
或exercise.html
更改索引2(您必须知道)
您可以在此site
上查找所有字符的编码更新
您尝试使用此代码:
var url = "http://........"
url += "&url=" + encodeURIComponent(params.url);
//There is a error because miss `?` then you replace `"?url="` else leave so
var deferred = dojo.xhrPost(xhrArgs);
var xhrArgs= {
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();
}
});
什么是params
????