@Andriy231566

Почему доступ заблокирован ajax?

var auth_mail = "...@gmail.com";
var auth_key = "...B5AC1E...";
var url = "http://seo-builder.ru/api/synonym/";

                    $.ajax(
                        {
                            url: url,
                            type: 'get',
                            headers: {
                                'Content-Type': 'application/json',
                                'Access-Control-Allow-Origin': "*"
                            },
                            data: {
                                auth_key: auth_key,
                                auth_mail: auth_mail,
                                text: text
                            },
                            dataType: 'json',
                            success: function (result) {
                                console.log(result);
                            },
                            error: function (error) {
                                console.log(error);
                            }
                        });


Access to XMLHttpRequest at 'http://seo-builder.ru/api/synonym/?auth_key=...' from origin 'http://pars.spr.local' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource.
  • Вопрос задан
  • 252 просмотра
Пригласить эксперта
Ответы на вопрос 3
TTATPuOT
@TTATPuOT
https://code.patriotovsky.ru/
Потому что вы не можете просто так брать и обращаться с одного сайта на другой через AJAX.
Вы должны или делать запросы на бекенде, или на сайте, который принимает запрос установить заголовки Access-Control-Allow-Origin.
В PHP, например, такой заголовок для всех сайтов устанавливается вот так:
header('Access-Control-Allow-Origin: *');
Строку нужно поместить до любого вывода текста.
Ответ написан
@BLVST
Frontend. Открыт к предложениям.
Запрос блокируется кросс-доменными политиками.
Нужно у сайта к которому обращаетесь указать, что для него разрешены кросс-доменные запросы
Ответ написан
@AUser0
Чем больше знаю, тем лучше понимаю, как мало знаю.
Обращайтесь на собственный сайт к файлу допустим synonym.php:
<?php
$tmp = array(
'auth_mail' => "...@gmail.com",
'auth_key' => "...B5AC1E...",
'text' => $_REQUEST['text'],
);
if(stristr($_SERVER['HTTP_REFERER'], $_SERVER['HTTP_HOST'])) readfile("http://seo-builder.ru/api/synonym/?".http_build_query($tmp));
?>

Так вы и от раскрытия приватной информации (auth_mail/auth_key) защититесь, и данные получите...
Случай недоступности/некорректности данных из seo-builder.ru предусмотрите сами, да?
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
20 апр. 2024, в 14:27
3000 руб./за проект
20 апр. 2024, в 13:56
7000 руб./за проект
20 апр. 2024, в 13:52
7000 руб./за проект