My restler 3 api отлично работает на локальном тестовом сервере и отлично работает на рабочем сервере, если звонки с этого же сервера, но если я сделаю звонок удаленно, тогда он терпит неудачу.restler 3 перекрестный домен не работает
Использование одного и того же клиента для отдыха с онлайн-примерами luracast прекрасно работает с удаленным вызовом, поэтому должно быть что-то в моей конфигурации (либо мой api, либо мой производственный сервер).
я нашел упоминание о необходимости отправки заголовков и поэтому попытался добавить эти заголовки в файле index.php:
header('Access-Control-Allow-Origin: *');
header('Access-Control-Allow-Methods: POST, GET, OPTIONS, PUT, PATCH, DELETE');
header('Access-Control-Max-Age: 1000');
header('Access-Control-Allow-Headers: *');
Но это не помогло. Используя аддон RESTClient в firefox, я вижу, что эти заголовки отправляются, и браузер будет показывать данные как локально, так и удаленно, независимо от того, использую ли эти команды заголовка или нет.
Вот вызов примера: https://api.masterpiecesolutions.org/v1/artists/?key=A4oxMOYEUSF9lwyeFuleug==
Моего index.php для этого вызова использует это, с 2 парами для отображения на корневой уровень
$r->addAPIClass('Artists', '');
Не знаю, если это уместно.
Кроме того, производственный сервер Amazon EC2, возможно, что-то связано с политикой безопасности?
Или, может быть, это еще одна проблема с заголовком? В google chrome, используя расширение Advanced Rest Client, он дает статус 403 Forbidden
, а Content-Type
- text/plain
(с использованием локального или удаленного сервера), поэтому он не будет работать вообще, в отличие от админа Firefox.
Я также вижу использование $_SERVER['HTTP_ORIGIN']
в Restler.php, и это, похоже, не поддерживается повсюду?
Просто FYI: если вы используете завиток внутри, вам не нужна поддержка CORS. CORS требуется только в запросах кросс-домена браузера – Luracast