jQuery Ajax 调用 Uri 中的转义字符

标签 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 错误(如果没有,则调用工作正常>/ 出现在参数中。

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

最佳答案

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

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

关于jQuery Ajax 调用 Uri 中的转义字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11427082/

相关文章:

javascript - 如何使用 Javascript 创建和下载 csv 文件?

javascript - 排除转义字符串中的字符

javascript - 如果使用 php 标签,php jquery 示例将不起作用

php - Laravel 聊天中的长轮询 : Why is the div not updating itself?

javascript - jquery ajax get 没有数据时显示错误信息

jquery - 单击 jQuery 更改图像

php - 我如何在 PHP 中使用 javascript decodeURI?

修复了 Firefox 中 jQuery 动画位置不准确的问题

javascript - 如何将整个表单作为字符串获取

javascript - 谷歌地图现在显示标记是我添加自定义图标