Я создал простое приложение реакции, как описано в https://reactjs.org/docs/add-react-to-a-new-app.html и теперь хочу сделать AJAX-вызовы веб-серверу (с PHP). Чтобы он работал с сервером разработки на локальный: 3000 Я пытаюсь настроить прокси в package.json
"proxy": {
"/abc": {
"target": "http://web.local/app/path/public/abc",
"secure": false,
"changeOrigin": true,
"logLevel": "debug"}
}
К сожалению приложение отвечает по умолчанию index.html содержание. Как заставить прокси работать при запросе / а дорожка?
Есть ли способ проверить и отладить прокси? Когда я пытаюсь открыть HTTP: // локальный: 3000 / абв я могу видеть
[HPM] POST /abc/abc -> http://web.local/app/path/public/abc
в консоли. Но при загрузке приложения сообщения отсутствуют, а из приложения отправляется запрос. (Я старался получать а также Вардар вызовы.)
Когда я создаю приложение и запускаю его на веб-сервере, все работает нормально.
РЕДАКТИРОВАТЬ:
Заголовки ответа для Вардар Ajax Call:
HTTP/1.1 404 Not Found
X-Powered-By: Express
Content-Security-Policy: default-src 'self'
X-Content-Type-Options: nosniff
Content-Type: text/html; charset=utf-8
Content-Length: 143
Vary: Accept-Encoding
Date: Wed, 03 Jan 2018 17:44:02 GMT
Connection: keep-alive
За получать:
HTTP/1.1 301 Moved Permanently
X-Powered-By: Express
Content-Type: text/html; charset=UTF-8
Content-Length: 165
Content-Security-Policy: default-src 'self'
X-Content-Type-Options: nosniff
Location: /abc/
Vary: Accept-Encoding
Date: Wed, 03 Jan 2018 17:58:37 GMT
Connection: keep-alive
А также
HTTP/1.1 200 OK
X-Powered-By: Express
Accept-Ranges: bytes
Content-Type: text/html; charset=UTF-8
ETag: W/"649-W8GnY7MkgPFg6/GXObpRHPnVDeU"Vary: Accept-Encoding
Content-Encoding: gzip
Date: Wed, 03 Jan 2018 17:58:37 GMT
Connection: keep-alive
Transfer-Encoding: chunked
Я решил проблему. Мои php файлы были расположены в общественности / каталог приложения (чтобы они были включены в сборку). И он доступен с веб-сервера разработки в виде статического контента. Теперь прокси проверяет, существует ли файл в общественности / и доставляет его, если это возможно. А если такого файла нет, то применяются правила, и он пытается извлечь данные с указанного URL.
Поэтому я переместил все связанные с php файлы в другое место, и необходимые данные доставляются с веб-сервера через прокси-сервер, как и предполагалось
"proxy": "http://web.local/app/path/static"
в package.json.
Также мне пришлось добавить отдельную команду для копирования содержимого этого каталога в строить / и добавьте его в процесс сборки.
Других решений пока нет …