2

我正在通过 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");
    }
});

不知何故 jQueryunescapes的 uri 值,没有调用服务器,我收到一个错误代码(如果参数中不存在,404 error调用工作正常。/

知道如何在 Ajax 调用中发送此类参数,或者我的代码做错了什么吗?

4

1 回答 1

-1

为避免对“/”进行编码,您可以将 encodeURIComponent 替换为 encodeURI。来源

旁注 - %5 是反斜杠的编码版本,而您给出的示例是正斜杠。这可能指向另一个额外的问题。

于 2012-12-14T21:38:01.623 回答