angularjs — подключайтесь к Homebrew PHP / MySQL из приложения Angular, используя $ http

Я создаю Angular App с Gulp локально на моей машине разработчика, которая в конечном итоге станет SaaS. Все данные жестко закодированы в JSON в сервисе исключительно для того, чтобы интерфейс работал.

Теперь я готов подключиться к локальной базе данных и буду использовать PHP / MySQL.
У меня есть локальная среда разработки для установки OSX с Homebrew, которая имеет готовый PHP и MySQL.

Проблема:
Я получаю 404, когда использую url: 'db-insert.php' строка независимо от того, где я положил файл db-insert.php в моей структуре каталогов.

POST http://localhost:3000/db-insert.php 404 (Not Found)

   var request = $http({
method: 'post',
url: 'db-insert.php',
data: {
name: $scope.name,
email: $scope.email,
message: $scope.message
},
headers: {
'Content-Type': 'application/x-www-form-urlencoded'
}
});

Я исследовал

• CORS: пробовал open -a 'Google Chrome' --args -allow-file-access-from-files

проглатывать-подключения-PHP

проглатывать-WebAPP выполняющихся-browsersync-и-PHP

BrowserSync Proxies

Приложение использует Gulps BrowserSync, у которого есть опция прокси, которая использует Express для подключения к определенному промежуточному программному обеспечению, но я не знаю, куда его направить, или это вообще правильный вариант.

Любое объяснение того, как правильно это сделать, было бы замечательно. Я думаю, что ответ, вероятно, является комбинацией того, что я нашел, но проблема заключается в реализации. Большое спасибо.

0

Решение

Хорошо, это оказалось проблемой файловой системы / CORS. Вот как я это решил:

1) Пройдите через сервер, чтобы попасть в php файл

http://127.0.0.1/dev/db-insert.php

НЕ

Файл: //myproject/dev/db-insert.php

Я пытался получить доступ к файлу напрямую в файловой системе, а не по его URL на сервере PHP, который я использую в качестве локального хоста. Когда я изменил URL, чтобы пройти через сервер apache, чтобы найти файл, он смог найти его.

2) Как только я добрался до файла, я получил проблему с CORS

Добавление приведенного ниже кода в начало выполнения db-insert.php позволило получить доступ к файлу. Затем сервер мог выполнить код.

header('Access-Control-Allow-Origin: '. $_SERVER['HTTP_ORIGIN'] );
header('Access-Control-Allow-Credentials: true' );
header('Access-Control-Request-Method: *');
header('Access-Control-Allow-Methods: POST, GET, PUT, DELETE, OPTIONS');
header('Access-Control-Allow-Headers: *,x-requested-with,Content-Type');
header('X-Frame-Options: DENY');
0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector