【发布时间】:2011-02-27 13:42:42
【问题描述】:
var url = relativeURI+'/rest/PPS/Prod/'+encodeURIComponent(prod)+'/Section/'+encodeURIComponent(section);
$j.ajax({
url: url,
type: 'POST',
error: function(){
alert('Error');
},
success: function(){
alert('ItWorks');
}
});
}
在这个 ajax 调用中,如果我在参数 prod 或 sec 中有“/”,那么就会出错。该请求甚至没有命中服务器。我在参数上使用 encodeURIComponent 。它适用于其中没有“/”的其他参数。请帮忙。
【问题讨论】:
-
您希望斜杠最终成为 URL 中的实际分隔符,还是希望它们被视为 URL 的每个 part 的一部分?
-
我希望参数“prod”或“section”中的斜杠不被视为 URL 分隔符。例如.. 我的 URI 是 /.../rest/PPS/Prod/{B39}/Section/{PVT/SSS/F} 添加了花括号来表示参数。使用 encodeURIComponent() 后,我得到了类似 /.../rest/PPS/Prod/{B39}/Section/PVT%2FSSS%2F 的 URI 但这失败了。我得到一个错误。其中没有斜杠的其他参数效果很好。
-
那么你得到了什么错误?错误是来自浏览器还是来自您的服务器?
-
我已经测试了使用“REST Easy”向服务器发送带有编码 URI 的请求,它工作正常。 jQuery ajax 以某种方式抛出错误。
-
我确定请求不会发送到服务器。我从这部分代码中得到警报。错误:函数(){警报('错误'); }
标签: javascript jquery ajax url encoding