我在我的网络应用程序中有一个搜索表单,当您使用撇号(智能引用,即 ’
而不是 {{1}进行搜索时会抛出Apache 400 Bad Request错误}} )。当有人从Microsoft Word复制和粘贴(自动将刻度线转换为智能引号)时会发生这种情况。
表单会导致GET请求,该请求会将搜索字符串放入URL中。即使我对字符串进行编码,也会导致此错误。我该怎么做才能让它发挥作用?
'
答案 0 :(得分:1)
使用encodeURIComponent
代替escape
:
var search_field = '/query/' + encodeURIComponent(query);
escape
不是标准函数,不会根据Percent-encoding as specified by RFC 3986对值进行编码。例如’
编码为"%u2019
。