searchTerms中的正斜杠在opensearch.xml中中断搜索网址

时间:2017-12-16 12:52:17

标签: html web urlencode opensearch opensearchdescription

我的opensearch XML看起来如下所示。

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input name="zip" />

我在这里面临的问题是,如果关键字类似于<?xml version="1.0" encoding="UTF-8" ?> <OpenSearchDescription xmlns="http://a9.com/-/spec/opensearch/1.1/" xmlns:moz="http://www.mozilla.org/2006/browser/search/"> <ShortName>my site short name</ShortName> <Description>My search description</Description> <InputEncoding>UTF-8</InputEncoding> <Image width="16" height="16" type="image/x-icon"> https://somesite.com/images/icons/favicon-16x16.png </Image> <Url type="text/html" method="get" template="https://somesite.com/search/{searchTerms}/page/1"></Url> </OpenSearchDescription> ,则提交到我网站的网址会变为

'this/that'

但是searchTerms应该被url编码为类似的东西,

https://somesite.com/search/this/that/page/1

由于URL现在有来自搜索键的额外正斜杠,因此我的应用程序的搜索URL被破坏。

对于我的申请,接受搜索参数不是一种选择。这会违反其他页面的一致性,类似于按关键字搜索。

我可以在https://somesite.com/search/this%2fthat/page/1 本身处理这个问题吗?

1 个答案:

答案 0 :(得分:0)

根据opensearch specification

  

&#34; searchTerms&#34;参数

     

替换为关键字或关键字   搜索客户希望。

     

限制:该值必须采用URL编码。

目前,我针对Chromium项目提出this bug以修复此问题,因为Chrome似乎没有对搜索参数进行编码。