Установка "API-ключа" на полимерном железо-ajax-клиенте

Я пытаюсь установить ключ API на клиенте iron-ajax в полимерном приложении, чтобы использовать конечную точку API-шлюза Amazon Web Services. На стороне сервера (API Gateway) я включил подстановочный знак на cors, также включил x-api-key в качестве заголовка и предоставил учетные данные. Когда я запускаю свой клиент, я всегда получаю один и тот же ответ в Chrome:

Ответ на запрос предварительной проверки не проходит проверку контроля доступа: в запрошенном ресурсе отсутствует заголовок "Access-Control-Allow-Origin". Источник ' http://localhost:8080/', следовательно, не имеет доступа. Ответ имел HTTP-код состояния 403.

Сетевой ответ: {"message": "Запрещено"}

Я попробовал следующий код, меняя вещи разными способами, но ничего не получил.

    <iron-ajax
      id="requestOpensource"
      url='https://myservice.execute-api.eu-west-1.amazonaws.com/development/myservice'
      method='GET'
      headers = "{{ajaxParams}}"
      handle-as="json"
      content-type="application/json"
      on-response="handleResponse"
      with-credentials="true"
      on-error="handleErrorResponse">
    </iron-ajax>
  </template>

  <script>
    Polymer({
      is: 'my-view1',
      properties: {
        response: {
          type: Object
        },
        apikey: {
          type: String,
          value: '12345'
        },
        ajaxParams: {
          type: String,
          computed: 'processParams(apikey)'
        },
        headers: {
          type: Object,
          computed: 'getHeaders(customHeader)'
        },
        customHeader: {
          value: '12345'
        }
      },
      getHeaders: function(customHeader) {
        return {'X-API-Key': customHeader}
      },
      processParams: function(apikey) {
        return {
          key: apikey
        }
      },
      ready: function () {
        debugger
        this.$.requestOpensource.headers['x-api-key'] = "12345"
        //this.$.requestOpensource.headers['Access-Control-Allow-Origin'] = "*"
        this.$.requestOpensource.generateRequest()
      }
  </script>

Также я использовал плагин Chrome для включения Cors, но это не очень хорошее решение для моих клиентов (а также я получил тот же ответ). Я считаю, что проблема не в правильной настройке данных в заголовках. Но я читаю несколько форумов и не знаю, что делать дальше.

Большое спасибо за ваши ответы!

0 ответов

Другие вопросы по тегам