Приветствую форумчане. Такая проблема, пытаюсь выполнить ajax запрос, суть которого отправить некоторые данные с домена: a.com на b.com и соответственно получить ответ от b.com с целью дальнейшей его обработки в скрипте на a.com
Оба домена находятся на OpenServer на локальной машине, то есть у меня есть контроль над http://b.com/ и я могу прописать в php файле необходимые настройки.
Однако при попытке выполнить ajax запрос получаю ошибку: jquery-3.6.0.min.js:2 Cross-Origin Read Blocking (CORB) blocked cross-origin response http://b.com/?callback=jQuery360001053556176974424_1630579545897&_=1630579545898 with MIME type application/json. See https://www.chromestatus.com/feature/5629709824032768 for more details.
Аналогичную ситуацию имею на хостинге уже на реальных доменах.
При этом данные c a.com на b.com в php скрипт все же попадают, однако, мне не удается добиться чтения ответа на домене a.com.
Что характерно в сети есть по меньшей мере один домен с которого таки удается получить данные таким способом.
Если вместо b.com подставить страницу: https://jsonplaceholder.typicode.com/todos/1
то в этом случае получаю ответ: {userId: 1, id: 1, title: "delectus aut autem", completed: false}
Однако же добиться аналогичного эффекта на домене под собственным контролем я не могу.
Пробовал в js указывать crossDomain: true, на стороне php пробовал указывать различные заголовки по типу:
header('content-type: application/json');
и тому подобное... пробовал даже скопировать из браузера заголовки которые отдает
сайт https://jsonplaceholder.typicode.com/todos/1 и подставить их в php файл через тот же header() однако ничего не выходит.
Подскажите куда копать? Вопрос вроде плевый, но сколько не пытаюсь ничего не получается.
Ниже код js:
<script>
//Первый вариант на jQuery:
$(document).ready(function(){
$.ajax({
url: "http://b.com",
crossDomain: true,
dataType: "jsonp",
success: function( response ) {
console.log(response);
}
});
});
</script>
<script>
//Второй вариант на чистом js:
function receiver(data){
console.log(data);
}
</script>
<script src="http://b.com/?callback=receiver"></script>
код php:
<?php
header('content-type: application/json');
header('Access-Control-Allow-Origin: http://a.com');
header('Access-Control-Allow-Methods: GET, POST, PUT, DELETE');
echo '{"foo":"bar"}';
?>