使用AJAX请求编码问题

时间:2011-11-07 23:41:48

标签: javascript ruby-on-rails utf-8 character-encoding

通过AJAX在本网站上进行搜索,我遇到非英文字符问题。

我这里有这个代码:

$.ajax({
    "type": "GET",
    "url": '<%= url_for({:action => "update_search"}) %>?',
    "data": query_string,
    "dataType": 'script',
    "success": function() {
        search_done();
    }
});

查询字符串包含要搜索的术语和一些其他参数。出于测试目的,我在JS端的成功函数中弹出alert,并在{Rails'侧的puts方法中将update_search语句作为第一行。

以下是我遇到问题的奇怪之处:<​​/ p>

用英语搜索时,一切正常;我在Rails控制台中看到puts的警报和输出。在用中文搜索时,我仍然看到成功alert,但update_search没有。在Rails控制台中,我看到来自Mongrel的Invalid HTTP format, parsing fails

通过URL参数将外来字符传回服务器的正确方法是什么?

Rails版本是2.3.10,如果它有所作为。

2 个答案:

答案 0 :(得分:1)

你应该这样做:

$.ajax({
    "type": "GET",
    "url": '<%= url_for({:action => "update_search"}) %>',
    "data": query_string,
    "dataType": 'script',
    "success": function() {
        search_done();
    }
});

注意query_string与网址的分离。根据{{​​3}},jQuery会自动执行,因此您无需处理所有内容。这可能会有所帮助。

告诉我它是否有帮助。

答案 1 :(得分:0)

This就是我用来解决这个问题的方法。