Я получаю ошибки CORS несмотря на установку заголовков PHP и файла .htaccess - PullRequest
0 голосов
/ 29 апреля 2019

Я добился большого успеха в безопасном разрешении CORS, но я пробовал с другой страницей, и она не работает.Я надеюсь, что кто-то может сказать мне, что я скучаю.Я знаю, что * небезопасно, но я пытаюсь это просто исключить имя сайта как переменную.

.htaccess файл

Header add Access-Control-Allow-Origin "*"
Header add Access-Control-Allow-Headers "origin, x-requested-with, content-type"
Header add Access-Control-Allow-Methods "PUT, GET, POST, DELETE, OPTIONS"

и начало моего php-файла:

// Allow from any origin just for testing...
if (isset($_SERVER['HTTP_ORIGIN'])) {
    // in production, no *, but using my real domain
    header('Access-Control-Allow-Origin: *');
    header('Access-Control-Allow-Credentials: true');
    header('Access-Control-Max-Age: 86400');
}
// Access-Control headers are received during OPTIONS requests
if ($_SERVER['REQUEST_METHOD'] == 'OPTIONS') {

    if (isset($_SERVER['HTTP_ACCESS_CONTROL_REQUEST_METHOD']))
        header("Access-Control-Allow-Methods: GET, POST, PUT, DELETE, OPTIONS");         

    if (isset($_SERVER['HTTP_ACCESS_CONTROL_REQUEST_HEADERS']))
        header("Access-Control-Allow-Headers: {$_SERVER['HTTP_ACCESS_CONTROL_REQUEST_HEADERS']}");

}

При доступе к php-файлу с помощью запроса ajax я получаю: Доступ к XMLHttpRequest по адресу https://sitename.000webhostapp.com/' из источника 'https://samesitename.com' заблокирован политикой CORS: Нет'Заголовок Access-Control-Allow-Origin 'присутствует на запрашиваемом ресурсе.

Работает в Почтальоне.Вот информация заголовка:

Date →Mon, 29 Apr 2019 18:50:03 GMT
Content-Type →text/html; charset=UTF-8
Transfer-Encoding →chunked
Connection →keep-alive
Access-Control-Allow-Origin →*
Access-Control-Allow-Headers →origin, x-requested-with, content-type
Access-Control-Allow-Methods →PUT, GET, POST, DELETE, OPTIONS
Server →awex
X-Xss-Protection →1; mode=block
X-Content-Type-Options →nosniff
X-Request-ID →18341eb6e5c7e5f483d8dd3a3a492b9c
Content-Encoding →gzip

Более того, я размещаю основной сайт на firebase, который не поддерживает PHP, поэтому я поместил php-файлы на 000webhostapp.com в качестве обходного пути.

1 Ответ

0 голосов
/ 29 апреля 2019

В случае, если кто-нибудь сталкивается с этим сообщением с похожей проблемой, я решил дважды проверить URL !!!

Я написал, что проверяю

https://sitename.000webhostapp.com/ 

когда я должен был ссылаться

https://sitename.000webhostapp.com/php/mail.php

Спасибо @Phil и @emix за то, что они заставили меня проверить детали.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...