使用Uri中的转义字符进行jQuery Ajax调用

时间:2012-07-11 06:50:15

标签: jquery ajax encodeuricomponent

我正在通过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调用上发送这些参数,或者我的代码出错了吗?

1 个答案:

答案 0 :(得分:-1)

为避免编码“/”,可以用encodeURI替换encodeURIComponent。 Source

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