у меня есть одна API Rest
который я использую в помещении и нуждаюсь в том, чтобы переслать ее в Веб сервер. Проблема, которая у меня есть, - что она не конфигурироваться однажды пересланная для того, чтобы оно общалось с базой данных SQL сервера.
Ошибка, которую я получаю, - эта:
XMLHttpRequest cannot load http://error.hostinger.eu/?.
No 'Access-Control-Allow-Origin' header is present on the requested resource.
Origin 'http://hanoi.hol.es' is therefore not allowed access.
Это первый раз, что я должен пересылать вещи в сервер, извините мое неведение :)
PD: я только что понял, что api проводит встроенными CORS.
header("Access-Control-Allow-Orgin: *"); header("Access-Control-Allow-Methods: *"); header("Content-Type: application/json");
PD-2: только из-за того, что он отказался бы, адрес для того, чтобы он присоединился в базу данных, должен бы быть этим $_server = "mysql.hostinger.es";
?
Зная, что ты используешь Hostinger
, это среда LAMP
(хотя я продолжаю думать, что его были бы должны звать GLAMP, G GNU) хороший, возвращаясь в ответ:
В root твоего интернет-сайта (где он public_html) есть так называемый файл .htaccess
в вышеупомянутый файл, он добавляет следующую линию:
Header set Access-Control-Allow-Origin "*"
Последуй со всем power за разработкой! и помни, никто не родился зная, мы все изучаем, и если он в команде, лучше :D
Эта ошибка - это очень общая, чтобы реализовывать просьбы в услугу Api Rest/Ful
, нужно давать сначала разрешения dominios/host, где они будут иссохшими Api
.
Ты можешь давать только одному разрешение или домены, которые ты хочешь
Пример:
('Access-Control-Allow-Origin: http://misitio1.com');
('Access-Control-Allow-Origin: http://otrositio.com');
('Access-Control-Allow-Origin: https://www.tusitio2.com');
('Access-Control-Allow-Origin: http://www.ejemplo.com');
Ты можешь использовать групповой символ *
чтобы относиться ко всем.
Больше информации в Mozilla: Access_control_CORS
А именно твой сервер, когда он получает просьбу, подтверждает host
откуда ты это просишь, и если он находится в Вашем списке разрешенных host, он посылает тебе данные.
Используя PHP
Установи следующий заголовок во всех ресурсах, который возвращает какую-то просьбу.
header('Access-Control-Allow-Origin: *');
Используя Апачи в .htaccess
Установи следующий директивный орган в файле .htaccess
твоего сервера.
<IfModule mod_headers.c>
Header set Access-Control-Allow-Origin "*"
</IfModule>
обычно, когда ты работаешь API в помещении с механизмом базы данных SQL, ты определяешь адрес в, какой дебет указывать на API, которая в помещении состоит localhost или 127.0.0.1, в том, что они тем же самым. Сейчас, когда твое приложение будет на сервере, ты должен определять адрес твоего сервера больше порт, например:: То, что находится в знаках <(несовершеннолетний что) y> (больше которые) должны смениться на данные о твоем сервере и удалять эти знаки.
Нужно доводить до сведения, что данные об удостоверении могут меняться, так что я рекомендую тебе проверять пользователь и пароль базы данных сервера для того, чтобы ты изменил их также на твой API.
Если ты получаешь esl следующую ошибку: XMLHttpRequest cannot load http://error.hostinger.eu/?. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://hanoi.hol.es' is therefore not allowed access
он, потому что ты не выполняешь эту эту политику [Политику того же orígen] (https://es.wikipedia.org/wiki/Pol%C3%ADtica_del_mismo_origen), что определяет, что сервер не может принимать просьбы различного домена. Есть два способа это решать: с клиента с JSONP или с CORS с сервера, где наиболее рекомендуемый он состоит в том, чтобы использовать CORS, потому что, если ты это делаешь с JSONP, каждый клиент был бы должен осуществлять это, взамен, если ты это делаешь с сервера только, ты это делаешь однажды. Для твоего специфического случая ищи лучший способ добавлять CORS, например, если это JAVA, он ищет: "add cors to java Веб application" или если он для nodeJS с Express, ты можешь искать: "add CORS to express" и я схватил последовательно, согласно framework, который ты используешь
XMLHttpRequest cannot load http://error.hostinger.eu/?. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://hanoi.hol.es' is therefore not allowed access.
- первый раз, что я должен пересылать вещи в сервер, извините мое неведение:)
– Subte
07.06.2016, 21:18
Header set Access-Control-Allow-Origin "*"
в .htaccess, но нет никакого различия. Если вы могли показывать меня, как помещать это в PHP api, так как я - студент, и мое знание на PHP минимальное. – Subte 08.06.2016, 21:38