Как справиться с распределением ресурсов между источниками в производственном уровне angular 6? - PullRequest
0 голосов
/ 28 июня 2018

Я знаю, что могу разрешить любой запрос на сервер, изменив сервер, добавив заголовок Access-Control-Allow-Origin. но безопасно ли сделать это на уровне производства. или есть какой-нибудь другой способ сделать это?

Ответы [ 2 ]

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

Объясняя CORS.

Для каждого запроса XHR (XMLHttpRequest) браузер отправляет предварительный запрос на сервер с соответствующими заголовками, чтобы проверить, разрешен ли настоящий запрос сервером или нет. Если вы не добавите какой-либо обработчик, он выдаст исключение в браузере.

Чтобы обработать это при загрузке Spring, вы можете добавить следующую аннотацию для методов или класса Controller (чтобы сделать его глобальным) для обработки запросов: -

     @CrossOrigin(
        origins = { "*" },     // You can add your allowed origins here
        methods = { RequestMethod.GET },   // Request Method
        allowCredentials = "true",
        allowedHeaders = CorsConfiguration.ALL,   // Allowed Headers
        exposedHeaders = {})    
    @RequestMapping(method = RequestMethod.POST)
    public String greeting(@RequestBody SomeClass
     name) {
        // your own code
    }

Вы также можете проверить этот для справки

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

Обычно вы просто делаете белый список разрешенных хостов, если вы используете express, это может быть следующий код.

const cors = require('cors');

const whitelist = [
  'https://myfrontserver1.com',
  'https://myfrontserver2.com',
  'https://myfrontserver3.com',
]; // the white list could be extracted from database, or a config file is up to you

app.use(cors({ origin: whitelist, credentials: true }));
...