Ошибка AMP-list (Autosuggest) 'no-cors' - PullRequest
0 голосов
/ 26 июня 2018

Я использую AMP-Autosuggest , пока я использую эту ошибку, возникает ошибка. Я не знаю, как я могу решить это.

API и веб находятся в другом домене.

Ошибка:

No '**Access-Control-Allow-Origin**' header is present on the requested resource. Origin 'http://localhost:3000' is therefore not allowed access. If an opaque response serves your needs, set the request's mode to '**no-cors**' to fetch the resource with **CORS** disabled.

Код:

<div class="suggest">
  <div
    class="autosuggest-container hidden"
    [class]="(showDropdown && query) ?
      'autosuggest-container' :
      'autosuggest-container hidden'"
  >
    <amp-list
      class="autosuggest-box"
      layout="fixed-height"
      height="120"
      src="https://myapi.com/data.json?q=xxx"
      id="autosuggest-list">
      <template type="amp-mustache">
        <amp-selector
          id="autosuggest-selector"
          keyboard-select-mode="focus"
          layout="container"
          on="
            select:
              AMP.setState({
                query: event.targetOption,
                showDropdown: false
              }),
              autosuggest-list.hide"
        >
          {{#results}}
            <div
              class="select-option no-outline"
              role="option"
              tabindex="0"
              on="tap:autosuggest-list.hide"
              option="{{.}}"
            >{{.}}</div>
          {{/results}}
          {{^results}}
            <div class="select-option {{#query}}empty{{/query}}">
              {{#query}}Sorry! We don't ship to your city ?{{/query}}
            </div>
          {{/results}}
        </amp-selector>
      </template>
    </amp-list>
  </div>
</div>


<amp-state id="autosuggest">
    <script type="application/json">
    {
      "endpoint": "https://myapi.com/data.json?q=xxx",
      "emptyAndInitialTemplateJson": [{
        []
      }]
    }
    </script>
  </amp-state>

1 Ответ

0 голосов
/ 26 июня 2018

Я решаю эту проблему с небольшими изменениями, внесенными в мой сервер API.

В моем рельсовом сервизе я использую самоцвет в стойке

In Config / application.rb

  config.middleware.insert_before 0, "Rack::Cors" do
      allow do
        origins '*'
        resource '*', headers: :any, methods: [:get, :post, :options]
      end
    end

Разрешить CORS

response.headers['AMP-Redirect-To'] = request.protocol+request.host_with_port+url
response.headers['Access-Control-Expose-Headers'] = 'AMP-Redirect-To, AMP-Access-Control-Allow-Source-Origin'
response.headers['AMP-Access-Control-Allow-Source-Origin'] = params[:__amp_source_origin]
...