AWS WebSock выдает ошибку CORS при подключении - PullRequest
0 голосов
/ 26 апреля 2020

Я работаю над AWS приложением чата WebSocket, используя безсерверный фреймворк.

Я следовал этой статье для разработки websocket api

, но когда я пытаюсь использовать эти websocket в моем angualar-приложении, возникает ошибка их выдачи

from origin 'http://localhost:4200' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.

вот мой модуль чата

mport { SocketIoModule, SocketIoConfig } from 'ngx-socket-io';
import { ChatService } from './chat.service';
const config: SocketIoConfig = { url: 'wss://xyz.execute-api.us-east-1.amazonaws.com/dev', options: {} };
const routes: Routes = [
  { path: 'chat', component: ChatComponent }
];
@NgModule({
  declarations: [ChatComponent],
  imports: [
    CommonModule, SocketIoModule.forRoot(config),
    RouterModule.forRoot(routes),

  ],
  providers: [ChatService],
  exports: [ChatComponent]
})
export class ChatModule { }

вот мой сервис чата:

export class ChatService {

  constructor(private socket: Socket) { }
  sendMessage(msg: string) {
    this.socket.emit("sendMessage", msg);
  }
}

Я использовал URL-адрес, полученный после развертывания sls

enter image description here

Ошибка браузера:

enter image description here

1 Ответ

0 голосов
/ 27 апреля 2020

Просто добавьте cors:true в function.events для всех событий, чтобы получить к ним доступ через перекрестный источник в вашем файле serverless.yml, например: -

events:
      - websocket:
          route: $connect
          authorizer: authorizerFunc
          cors : true

, и повторно разверните лямбду.

...