我有一个像这样的javascript代码:
function OnRequestComplete(result) {
// Download the file
//Tell browser to open file directly
alert(result);
var requestImage = "Handler.ashx?path=" + result;
document.location = requestImage;
}
和Handler.ashx代码是这样的:
public void ProcessRequest(HttpContext context)
{
Context = context;
string filePath = context.Request.QueryString["path"];
filePath = context.Server.MapPath(filePath);
}
在filePath中,我们没有任何+符号(代替空格) 我该如何解决这个问题呢? 为什么Request.QueryString [“path”]将所有+符号转换为空格?
答案 0 :(得分:4)
正确编码查询字符串后,空格变为+
,+
变为%2B
。解码过程正好相反,这就是你的+
变成空间的原因。
问题是您没有encode查询字符串,这意味着它被错误解码。
var requestImage = "Handler.ashx?path=" + encodeURIComponent(result);