2016-01-29 4 views
5

Я работаю над небольшим приложением, используя Angular2. В 5min. Quickstart Guide npm используется для установки необходимых модулей и запуска Lite-сервера. Позже я хочу использовать это приложение в обычном веб-сервере и создавать мобильные приложения с кордорой. Как бы то ни было, я использую REST api для загрузки некоторых данных. Как настроить Lite-сервер для проверки проверки перед полетами CORS? Мой сервер Apache (на выделенном сервере) уже настроен, но я не хочу фиксировать, обновлять и перекомпилировать каждое небольшое изменение. Мне нужна соответствующая конфигурация:npm start - using CORS

Header always set Access-Control-Allow-Origin "https://my-domain.net:12345" 
Header always set Access-Control-Allow-Headers "X-Requested-With, Content-Type, Origin, Authorization, Accept, Client-Security-Token, Accept-Encoding" 
Header always set Access-Control-Allow-Methods "POST, GET, OPTIONS, DELETE, PUT" 
Header always set Access-Control-Max-Age "1000" 
+1

За то, что я понимаю в вашей архитектуре ваш облегченная-сервер служит только для вашего приложения клиент/браузер, его статический контент, как Js скрипты, CSS и HTML, эти файлы будет запрашивать данные на вашем сервере tomcat, хотя HTTP-вызовы, эти вызовы являются теми, которые могут дать ошибку CORS, если сервер tomcat не добавляет эти заголовки в ответ, поэтому вам не нужно настраивать Lite-сервер, вы не делают запросы с сервера tomcat на статический сервер содержимого? – Langley

+0

Хмм, я делаю REST-вызовы с Lite-сервера на мой основной сервер (который находится в другом домене, который локальный веб-сервер). И у меня всегда была ошибка CORS. Проверьте ответ Тиерриса; он работает сейчас. – letmejustfixthat

ответ

5

Внутри Lite-сервера нет встроенной опции. Тем не менее, вы можете исправить это, но я не очень понимаю, что вы пытаетесь сделать здесь ...

После установки, вы можете зайти в папку node_modules/lite-server и установить connect-cors модуль:

npm install connect-cors 

Тогда в lib/lite-server.js file, вы можете импортировать модуль и использовать его массив промежуточного слоя после того, как:

var historyFallback = require('connect-history-api-fallback'); 
var log = require('connect-logger'); 
var cors = require('connect-cors'); // <------------------ 
(...) 

sync.init({ 
    port: argv.port || 3000, 
    server: { 
    baseDir: options.baseDir, 
    middleware: [ 
     cors(), // <------------------ 
     log(), 
     historyFallback({ index: options.fallback }) 
    ] 
    }, 
    files: options.files, 
}); 

при запуске сервера с помощью следующей команды поддержки CORS пригодное:

./bin/lite-server --baseDir ../../ 

Добавив заголовок Origin в запросах, вы увидите заголовки CORS в ответе.

+0

Это делает.И то, что я делаю, просто развивается на моей локальной машине вместо моего сервера (как сказано, я не хотел совершать каждое изменение, и если заголовки не верны, это не сработает), спасибо. – letmejustfixthat

+0

рассмотрите последний ответ, похоже, работает на меня: http-server -o --cors – Bob

2

фактически Lite-сервер - это всего лишь оболочка синхронизации браузера, если вы можете проверить документы с https://www.browsersync.io/docs/options, вы можете найти конфигурацию cors, а поскольку поддержка Lite-сервера использует конфигурационный файл для установки параметров, поэтому все, что вам нужно сделать, это просто установить конфигурационный файл для Lite-сервера, вы можете выбрать bs-config.js или bs-config.json, если мы используем самый простой bs-config.json, contente:

{ 
    "cors": true 
} 

тогда вы сразу начать облегченный-сервер, вы можете увидеть:

браузера синхронизация конфигурация

{ injectChanges: false, 
    files: [ './**/*.{html,htm,css,js}' ], 
    watchOptions: { ignored: 'node_modules' }, 
    server: { baseDir: './', middleware: [ [Function], [Function] ] }, 
    cors: true } 

[BS] URL для доступа:

Local: http://localhost:3000 

, что означает Корс работы.

+3

это не сработает, заголовок 'Access-Control-Allow-Origin' по-прежнему не отправляется – wodzu

1

я нашел с HTTP-сервером

http-server -o --cors

Смежные вопросы