【问题标题】:escape double quotes in url of ajax call在 ajax 调用的 url 中转义双引号
【发布时间】:2014-06-03 19:13:11
【问题描述】:

我有一个 ajax 调用

$.ajax({
    url: 'url&para1=' + JSON.stringify(obj),
    type: 'POST',
    async: true,
    contentType: 'application/json',
    data: {},
    success: function(data){
    },
    error: function(error){

    }
});

在网址中,每个" 都会得到%22

如何才能逃脱?

【问题讨论】:

  • 您在 URL 查询字符串中发送 json 数据并在 type: "POST" 中发送 data:{},哦,天哪,我认为除了转义 " 之外,还有更多优化选项。尝试不同的方法,使用data 发布POST 数据。那将是最好的解决方案。

标签: javascript jquery ajax


【解决方案1】:

也许这会有所帮助

url: 'url&para1=' + encodeURIComponent(JSON.stringify(obj)),

【讨论】:

    【解决方案2】:

    %22 双引号的“转义”值。这是在 URI 中发送该数据的公认方式。您究竟是在哪里遇到问题?

    【讨论】:

      【解决方案3】:

      JSON.stringify 将对象转换为字符串。但是,必须将带引号的字符串转换为 URL 编码的字符串(参见 superrafal 的答案)。

      但是,如果这是一个 POST 请求,为什么要像 GET 请求一样将 URL 中的参数作为查询字符串 (?key=value) 发送? data 参数设置为空白对象。如果您希望将 URL 中的这些值作为 GET 发送,请将类型更改为 GET,删除“data”参数,然后使用 $.param(obj) 将该对象转换为查询字符串。如果您希望将这些值作为 POST 发送,请使用以下命令:

      $.ajax({
          url: "url_to_file_to_accept_POST_request",
          type: "POST",
          data: obj,
          success: function(data) {
      
          },
          error: function(error) {
      
          }
      });
      

      【讨论】:

        猜你喜欢
        • 2020-11-26
        • 1970-01-01
        • 2013-06-17
        • 1970-01-01
        • 1970-01-01
        • 2011-06-09
        • 2011-04-19
        相关资源
        最近更新 更多