Я пытаюсь создать небольшое приложение vue.js, которое использует aws-sdk для получения всех экземпляров Lightsial. Однако я продолжаю получать эту ошибку.

:8081/#/:1 Access to XMLHttpRequest at 'https://lightsail.us-west-2.amazonaws.com/' from origin 'http://localhost:8081' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource.

Вот мой скрипт компонента vue

import { AmplifyEventBus } from 'aws-amplify-vue'
import { components } from 'aws-amplify-vue'
import AWS from 'aws-sdk'
import Lightsail from 'aws-sdk/clients/lightsail'
import Auth from '@aws-amplify/auth';

import awsconfig from '../aws-exports';


export default {
components: {
    AWS, Lightsail
  },
  data() {
    return {
     
    }
  },
  mounted() {

  var myCredentials = 
    {
      accessKeyId : '***************',
      secretAccessKey : '****************'
    }

  AWS.config.update({
    credentials: myCredentials, region: 'us-west-2'
  });

    var lightsail = new AWS.Lightsail();
    lightsail.getInstances(function (err, data) {
  if (err) console.log(err, err.stack); // an error occurred
  else     console.log(data);           // successful response
    });




  }

}

Я также использую aws-ampify-vue в этом приложении для аутентификации пользователей.

0
Sahil Khanna 23 Ноя 2018 в 07:11

2 ответа

Лучший ответ

Это просто потому, что текущая версия << a href = "https://aws.amazon.com/ko/sdk-for-browser/" rel = "nofollow noreferrer"> aws-sdk-js > делает < strong> не разрешает CORS для Lightsail API.

Об этом четко говорится в официальном документе.

ИЗМЕНИТЬ: Совершенно неверный ответ, написанный другим пользователем, был удален после того, как я добавил к нему комментарий. Поэтому я убрал из своего ответа слова «Правильный ответ». Спасибо за ваше быстрое действие.

1
Quidn 30 Мар 2019 в 23:32

Основываясь на моем исследовании, это должна быть проблема CORS. Вот аналогичная ветка, в которой упоминаются некоторые обходные пути. Не могли бы вы проверить, работает ли это в вашем сценарии?

Почему мой JavaScript выдает ошибку «Нет заголовка Access-Control-Allow-Origin» в запрошенном ресурсе », когда Postman этого не делает?

1
Ricardo Ramirez 23 Ноя 2018 в 04:23