React Router обрабатывает предложение OpenSearch - PullRequest
0 голосов
/ 14 ноября 2018

Можно ли заставить React Router обрабатывать запросы подсказки OpenSearch с ответом JSON?

вещь выглядит так:

  • index.html: <link rel="search" type="application/opensearchdescription+xml" href="/opensearch.xml" title="Search">

  • opensearch.xml:

    <?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>Search</ShortName>
        <Description>Search</Description>
        <InputEncoding>UTF-8</InputEncoding>
        <Image height="16" width="16" type="image/x-icon">https://host/favicon.ico</Image>
        <Url type="text/html" method="get" template="https://host/search?q={searchTerms}" />
        <Url type="application/x-suggestions+json"
    template="https://host/suggest?q={searchTerms}">
        <Query role="example" searchTerms="RDF"/>
    </Url>
    

  • index.js

    ReactDOM.render(
      <Provider store={store()}>
        <Router>
          <div>
            <Route exact path="/" component={App} />
            <Route path='/suggest' render={(event) => {
              console.log('Route Suggest', { event });
              return ["fir", ["firefox", "first choice", "mozilla firefox"]];
            }}/>
          </div>
        </Router>
      </Provider>,
      document.getElementById('root')
    );
    

На стороне сервера в журнале nginx есть:

==> /var/log/nginx/access.log <==
[14/Nov/2018:20:09:50 +0100] "GET /suggest?q=foo HTTP/2.0" 200 1167 "-" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:63.0) Gecko/20100101 Firefox/63.0" "-"

Но в окне поиска браузера ничего не возвращается. И на клиентской консоли нет никаких следов.

Кроме того, GET /suggest?q=foo не обрабатывается событием fetch Сервисного работника.

Может ли React Router обработать такой запрос и вернуть ответ JSON? Или, возможно, с помощью перехваченного запроса у Service Service?

...