我正在尝试发送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
设置为空白。
请帮助解决问题。
谢谢, 安贾尼
答案 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 });
#破坏你的网址的原因是#用于转到页面中的锚点。这就是为什么浏览器会切断#。
的任何网址