【问题标题】:Cannot send special characters via jQuery ajax无法通过 jQuery ajax 发送特殊字符
【发布时间】:2012-01-14 16:21:04
【问题描述】:

我正在开发一个网页,用户正在使用标签搜索文件。 我正在使用 jQuery Ajax 对 API(数据库)进行远程调用。 当我使用像 a-z 这样的非特殊字符时一切正常,但在使用 åäö 时会失败。

在服务器端,我使用的是 PHP。我打印标签以查看它是否“到达”并且所有 a-z 工作正常,但 åäö 根本没有显示。他们似乎没有“到达”。

有什么问题?

这是我的 jQuery 代码:

var tags = $('#tags').val();

$.ajax ({
    type: "POST",
    url: base_url + "search", 
    data: "tags=" + tags + "&limit=" + limit, 
    beforeSend: function (html) {
            $("#search_results").html("Searching for files...");
    },
    success: function (html) {
            $("#search_results").html(html);
    },
    error: function (html) {
            $("#search_results").html('Something went wrong!');
    }
});

这是我的服务器端代码:

echo ($_POST['tags']);

我在 SO 上搜索并查看了有关此问题的相关问题,但不幸的是没有帮助我。

更新

使用它解决了它!现在工作正常。

{tags: encodeURIComponent(tags), limit: limit}

【问题讨论】:

  • 试试"tags=" + encodeURIComponent(tags) + "&limit=" + encodeURIComponent(limit),或{tags: tags, limit: limit}
  • 这也不起作用:data: "tags=" + encodeURIComponent(tags) + "&limit=" + limit
  • {tags: tags, limit: limit} 也不起作用。

标签: javascript character-encoding tags


【解决方案1】:

在使用 encodeURIComponent() 将数据(标签)发送到服务器之前,必须对其进行编码

【讨论】:

  • 这也不起作用:data: "tags=" + encodeURIComponent(tags) + "&limit=" + limit
  • 确保您的流程的所有部分都是 UTF-8 检查:HTML 页面;请求编码;服务器端编码; AJAX.setRequestHeader("Content-type", "application/x-www-form-urlencoded; charset=UTF-8"); meta http-equiv="content-type" content="text/html; charset=UTF-8" 基本上你将不得不追踪丢失了哪一步字符编码。
  • 谢谢,它解决了我在 Internet Explorer 中的 Jquery AJAX 请求中发送特殊字符的问题。
【解决方案2】:

以下代码可以很好地通过 ajax 调用发送 & 和 "" 或任何特殊字符:

specialChar1= "JΛ̊KE#2@#*&($^@%#*@#%))*$&@*(""" ;
specialchar2 ="??&!!--##";
url = "/get/" + encodeURIComponent( specialChar1) +"/"+  encodeURIComponent ( specialchar2 )

【讨论】:

    【解决方案3】:

    您可以通过使用 JSON 对象来实现这一点。

    例如:

    [{"AttributeId":"4035","Value":"Street & House"}]
    

    或者,您可以在发帖前使用URLencode

    【讨论】:

      猜你喜欢
      • 2012-01-10
      • 2012-06-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多