我正在通过jQuery对一个GET
服务方法进行Ajax调用。问题是所用参数的值可能包含/
字符,因此我决定使用 encodeURIComponent()
方法从参数中转义特殊字符。结果是/
字符转换为%5
,并且尝试在Ajax请求中使用转义参数。我的代码看起来像:
var id = "some/id";
$.ajax({
url: "http://www.mywebsite.com/getValue/" + encodeURIComponent(id),
dataType: "text",
type: 'GET',
async: true,
cache: false,
success: function (response, textStatus, jqXHR) {
alert("success");
},
error: function (jqXHR, textStatus, errorThrown) {
alert("error");
}
});
以某种方式jQuery unescapes
uri值,未对服务器进行调用,并且收到错误代码404 error
(如果在/
中没有{{1}},则调用正常。参数。
知道如何在Ajax调用上发送这些参数,或者我的代码出错了吗?
答案 0 :(得分:-1)
为避免编码“/”,可以用encodeURI替换encodeURIComponent。 Source
旁注 - %5是反斜杠的编码版本,而您给出的示例是正斜杠。这可能会指出另一个问题。