Я работаю над функцией ajax, которая загружает другую страницу, чтобы обойти ограничения iframe в Shopify. Моя проблема, кажется, что URL заблокирован или заголовки удалены. Ничего сложного, все работало так, как мне было нужно, используя следующее:
function get_report() {
var params = {
type: "GET",
url: "https://example.com/mypage.php",
dataType: 'html',
success:function(html) {
$("#content_div").load("https://example.com/mypage.php");
},
error: function(XMLHttpRequest, textStatus) {
alert('Error : ' +XMLHttpRequest.response);
}
};
jQuery.ajax(params);
};
<button onclick="get_report()">Get</button>
<div id="content_div"></div>
Работает через публичные c сети без проблем. Однако, когда мой клиент использует его за брандмауэром компании, он не может загрузить страницу. При дальнейшей проверке выясняется, что URL сайта, на котором размещен мой php, также не может быть загружен (я не могу там подтвердить физически). Вот пример этой страницы, если она уместна:
<?php
$allowedOrigins = [
"https://myexample.com",
"https://myexample2.com"
];
if (array_key_exists('HTTP_ORIGIN', $_SERVER)) {
$origin = $_SERVER['HTTP_ORIGIN'];
} else if (array_key_exists('HTTP_REFERER', $_SERVER)) {
$origin = $_SERVER['HTTP_REFERER'];
} else {
$origin = $_SERVER['REMOTE_ADDR'];
}
if (in_array($origin, $allowedOrigins)) {
header("Access-Control-Allow-Origin: " .$origin);
}
setcookie('cross-site-cookie', 'name', ['samesite' => 'None', 'secure' => true]);
?>
<!DOCTYPE HTML>
<html lang="en">
<head>
<meta charset="utf-8">
<title>TEST ALT IFRAME</title>
</head>
<body>
<div><?php echo "IT WORKS"; ?></div>
</body>
</html>
Что я знаю:
- Ходил клиент через доступ к консоли chrome, в списке ноль ошибок
-URL никогда не загружается, когда клиент пытается загрузить его через браузер 4 месяца)
То, что я пробовал:
-Последнее добавление мета-тегов и! DOCTYPE (на всякий случай)
-Валидация обоих Сайт iframe и сайт URL с W3 C
-Подтверждение, что сайт iframe и сайт URL работают с VPN и publi c сетей
-Проверка на правильную категоризацию в основных группах фильтрации сети (семантика, палео-альт и т. д. c) и для него установлено значение «БЕЗОПАСНЫЙ».
Мой вопрос:
-Как узнать, является ли URL-адрес заблокирован или ajax запрос отбрасывается?
-Если сеть фильтрует мой ajax URL, я в тупике или есть другой вариант на