Заголовки почтальона и AJAX не соответствуют заголовку PHP ()
Это продолжение этого. Я не получаю "Access-Control-Allow-Origin" после бесчисленного количества раз, когда мой скрипт работает. Но для этого я нашел быстрое решение, как вы можете видеть, говоря о htaccess, оказалось, что моя проблема с PHP заключалась в том, как действует litespeed.
Дело в том, что быстрые исправления хороши, но я все же предпочел бы иметь PHP-код, который работает с динамически меняющимися заголовками.
Вот мой php код
<?php ob_start();
header("Access-Control-Allow-Origin:{$_SERVER['HTTP_ORIGIN']}");
header("Access-Control-Expose-Headers:Access-Control-Allow-Origin");
header('Access-Control-Allow-Credentials:true');
header("Cache-Control:no-cache");
header("Pragma:no-cache");
header("Access-Control-Allow-Methods:POST,GET,DELETE,OPTIONS");
header('Allow', 'GET,POST,DELETE,OPTIONS');
echo "{'hi':'bye'}";
ob_end_flush();?>
Так что да, это прекрасно работает, когда я тестирую его с помощью почтальона, и это похоже на работу с POST и GET на AJAX, но не с DELETE и OPTIONS.
Я все еще получаю
Failed to load http://api.website.com/abc.php: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://website.com' is therefore not allowed access
как ошибка.
И я обнаружил, что заголовки меняются в AJAX, пока я получаю то, что хотел от Postman. Зачем?
Почтальон:
Access-Control-Allow-Credentials →true
Access-Control-Allow-Methods →POST,GET,DELETE,OPTIONS
Access-Control-Allow-Origin →
Access-Control-Expose-Headers →Access-Control-Allow-Origin
CF-RAY →464b5312c556591b-DFW
Cache-Control →no-cache
Connection →keep-alive
Content-Encoding →gzip
Content-Type →text/html; charset=UTF-8
Date →Thu, 04 Oct 2018 23:10:53 GMT
Pragma →no-cache
Server →cloudflare
Transfer-Encoding →chunked
Vary →Accept-Encoding
X-Turbo-Charged-By →LiteSpeed
AJAX:
$.ajax({
url: 'http://api.cubclub.tk/abc.php',
type: 'DELETE',
success:function(r) {
console.log(r)
},
error:function(r) {
// window.location = '404';
}
});
,
Request URL: http://api.website.tk/abc.php
Request Method: OPTIONS
Status Code: 200 OK
Remote Address: 104.27.183.4:80
Referrer Policy: no-referrer-when-downgrade
Allow: OPTIONS,HEAD,GET,POST
CF-RAY: 464b7e274229589d-DFW
Connection: keep-alive
Content-Length: 0
Content-Type: text/plain
Date: Thu, 04 Oct 2018 23:40:18 GMT
Server: cloudflare
Set-Cookie: __cfduid=df8bca79dfe244fd91f4dbe92487db7681538696418; expires=Fri, 04-Oct-19 23:40:18 GMT; path=/; domain=.cubclub.tk; HttpOnly
X-Turbo-Charged-By: LiteSpeed
Accept: */*
Accept-Encoding: gzip, deflate
Accept-Language: en-US,en;q=0.9
Access-Control-Request-Method: DELETE
Connection: keep-alive
Host: api.website.tk
Origin: http://website.tk
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36
Надеюсь, я никого не обидел за то, что продолжил вопрос, который превратился во что-то другое, я довольно новичок в stackru как писатель.