无法使用#in参数发送Ajax请求

时间:2014-02-26 14:12:21

标签: javascript ajax jsp

我正在尝试发送ajax请求。以下是代码

var parameters = '?dbSid='+dbSid+ '&dbPort='+dbPort+ '&dbIpAddress='+dbIpAddress+    '&dbUserName='+dbUserName+ '&dbPassword='+dbPassword;

new Ajax.Request('../pages/invoke-oracletestAgentCred.jsp'+parameters,   {onSuccess:successFunction , onFailure:errorFunction });  

如果我发送dbPassword为abcd,那么它可以正常工作。

但当我发送dbPassword为#abc时,它失败并将dbPassword设置为空白。

请帮助解决问题。

谢谢, 安贾尼

2 个答案:

答案 0 :(得分:3)

#字符在URL中具有特殊含义(它表示文档片段的开头)。

确保您对网址组件进行编码(使用encodeURIComponent)。

答案 1 :(得分:1)

您是否尝试过使用encodeUriComponent?

var parameters = '?dbSid='+encodeUriComponent(dbSid)+ '&dbPort='+encodeURIComponent(dbPort)+ '&dbIpAddress='+encodeURIComponent(dbIpAddress)+ '&dbUserName='+encodeURIComponent(dbUserName)+ '&dbPassword='+encodeURIComponent(dbPassword);

new Ajax.Request('../pages/invoke-oracletestAgentCred.jsp'+parameters, {onSuccess:successFunction , onFailure:errorFunction });

#破坏你的网址的原因是#用于转到页面中的锚点。这就是为什么浏览器会切断#。

的任何网址