Я знаю, что подобные вопросы задавались, но здесь ничего не получалось.Заранее спасибо!
Я использую извлечение из приложения JavaScript реагирования (расположенного по адресу http://localhost:3000), также для публикации данных и получения ответа от локального PHP API (с использованием XAMPP и по адресуhttp://local.api.mysite.com/user)
Каждый раз, когда я получаю статус 200 без каких-либо возвращенных заголовков или тела. Если я перехожу на URL-адрес PHP в моем браузере, он работает просто отлично
Я убедился, что corsустановить в js и php, установить типы контента, отключить кэширование и попробовать все предложенные исправления здесь и в Google.
Это последнее средство
JS:
fetch('http://local.api.mysite.com/user', {
method: 'POST',
mode: 'cors',
headers: {
'Content-Type': 'application/json',
'Cache-Control': 'no-cache'
},
body: JSON.stringify(data),
}).then(console.log(response))
PHP:
// Allow from any origin
if (isset($_SERVER['HTTP_ORIGIN'])) {
header("Access-Control-Allow-Origin: {$_SERVER['HTTP_ORIGIN']}");
header('Access-Control-Allow-Credentials: true');
header("Cache-Control: no-cache");
}
// 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, OPTIONS");
if (isset($_SERVER['HTTP_ACCESS_CONTROL_REQUEST_HEADERS']))
header("Access-Control-Allow-Headers: {$_SERVER['HTTP_ACCESS_CONTROL_REQUEST_HEADERS']}");
exit(0);
}
$output = json_encode(['status' => 'recieved']);
header('Content-Length: '.strlen($output));
header('Content-Type: application/json');
echo $output;
exit;
Ранее я ограничивал свои заголовки PHP более строгими, но я нашел этот блок кода и использую его для пропуска чего-либо для тестирования.
Решение Комментарий Рикина к его ответу позволил мне открыть инструменты разработчика, перейти на вкладку сети и просмотреть ответ напрямую. Это показало, что произошла ошибка сервера, которая привела к пустому ответу со статусом 200