【问题标题】:jQuery Ajax call with escaped characters in Uri在 Uri 中使用转义字符的 jQuery Ajax 调用
【发布时间】:2012-07-11 06:50:15
【问题描述】:

我正在通过 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(如果参数中没有 /,调用工作正常。

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

【问题讨论】:

    标签: jquery ajax encodeuricomponent


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-09-06
      • 1970-01-01
      • 1970-01-01
      • 2012-10-08
      相关资源
      最近更新 更多