2010-06-15 56 views
1

我得到jQuery的错误,当我路过#包含得到错误传递#查询字符串值

 var url = "/CheckVol/SaveItem?status=" + status + "&name=" + name ; 
$.post(url, function(data) { 

}); 

这里名字中含有“我的名字#潘卡#罗哈尼#印度,这是产生误差。

+1

是否有一个原因是你在做一个帖子时把数据放在查询字符串中?你能不能只发布实际数据? – 2010-06-15 19:29:38

+0

优点尼克。 – 2010-06-15 19:30:11

回答

2

如果您使用空格,#或?还有其他一些角色。在查询字符串值中,它们必须被编码。 #字符可以编码为uisng%23。但尼克的评论是正确的。你已经在做一个帖子。为什么不在你的发布数据中包含你的Querystring?

您需要使用%喜欢使用encodeURIComponent()这个

name = name.replace("#", "%23"); 

var url = "/CheckVol/SaveItem?status=" + status + "&name=" + name ; 
2

可能编码23

东西编码#,就像这样:

var url = "/CheckVol/SaveItem?status=" + encodeURIComponent(status) + 
           "&name=" + encodeURIComponent(name); 
$.post(url, function(data) { }); 

但它会更好地发布实际数据,如下所示:

$.post("/CheckVol/SaveItem", { status: status, name: name }, function(data) { }); 

虽然这需要服务器在这里查找,但这是我认为更合适的解决方案。