我正在通过 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 错误
(如果没有,则调用工作正常>/
出现在参数中。
知道如何在 Ajax 调用上发送此类参数,或者我的代码做错了什么吗?
最佳答案
为了避免对“/”进行编码,您可以将encodeURIComponent替换为encodeURI。 Source .
旁注 - %5 是反斜杠的编码版本,而您给出的示例是正斜杠。这可能指向另一个额外问题。
关于jQuery Ajax 调用 Uri 中的转义字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11427082/