Я работаю над своей собственной ERP в laravel с отдельным фронтом Vue.js. Некоторое время я работал на сервере Windows с apache, и он работал нормально. Вначале настройка была немного сложной, так как я не запускал vue из apache, а использовал npm run dev, поэтому использовал собственный сервер dev. Я смог его собрать и протестировать, обслуживая через порт 80.
Все идет нормально.
Я хотел пройти через действия и сделать образец установки для производства и перенести все на CentOS, и здесь я столкнулся с предупреждениями CSRF на интерфейсе.
Если вам интересно, у меня включены заголовки cors на моем компьютере с Windows, но мне не нужно было устанавливать что-то еще вроде этого:
Набор заголовков Access-Control-Allow-Origin "*"
в настройках моего каталога, которые часто советуют здесь, когда вы сталкиваетесь с проблемами предварительной проверки CSRF.
Это ошибка, которую я получаю в CentOS, которую я не получаю в Windows:
Доступ к XMLHttpRequest по адресу 'http://192.168.2.100:8029/api/oauth/get-token'от происхождения'http://192.168.2.100'заблокирован политикой CORS: ответ на предполетный запрос не проходит проверку контроля доступа: заголовок' Access-Control-Allow-Origin 'содержит несколько значений' *, http://192.168.2.100', но разрешен только один.
PS Я обслуживаю laravel на порту 8029, обслуживаемом apache. Я слушаю оба порта 80 и 8029 (интерфейс vue и сервер laravel)
Вот файл vhost:
<VirtualHost *:8029>
ServerAdmin emailhere
DocumentRoot "/var/www/html/backendpathhere/"
ServerName webservices7.zeintek.com
ServerAlias www.webservices7.zeintek.com
<Directory "/var/www/html/backendpathhere/">
AddHandler cgi-script .cgi .pl .py
Options Indexes Includes FollowSymLinks ExecCGI
AllowOverride All
Order Allow,Deny
Allow From All
</Directory>
</VirtualHost>
<VirtualHost *:80>
ServerAdmin emailhere
DocumentRoot "/var/www/html/frontendpathhere/"
<Directory "/var/www/html/frontendpathhere/">
AddHandler cgi-script .cgi .pl .py
Options Indexes Includes FollowSymLinks ExecCGI
Options +ExecCGI
AllowOverride All
Order Allow,Deny
Allow From All
</Directory>
</VirtualHost>
Когда я это сделал, я закодировал ответ в моем собственном обработчике Apache (написанный на Perl), поэтому я не понимаю, как он установлен в Apache, и не вижу его в ваших файлах конфигурации. Я вижу, что вы включили .pl .py и .cgi, поэтому у вас может быть собственный код для ответа на предполетный запрос.
Что служит ответом на предполетный запрос? Это та часть, где генерируется недопустимый ответ.
Проверьте запрос и ответы (Network vierw в инструментах разработчика вашего браузера) и перекрестную ссылку с RFC. Различные конфигурации сервера будут иметь разные параметры, поэтому убедитесь, что, если вы используете конфигурацию Apache, вы поняли, как правильно установить параметр.
Когда я это сделал, мне потребовалось немного времени, чтобы понять, как мы собирались построить модель данных предметной области с перекрестными ссылками, но я не помню, чтобы заставить код работать было особенно сложно.
Мои искренние извинения. У меня был файл backendurls, специфичный для каждого развертывания сервера, и я попадал не в ту конечную точку. Мой Linux-сервер поражал сервер Windows Dev.
Написание этого на самом деле помогло мне решить эту проблему.