В python, если я делаю
import requests
x = requests.head('https://www.google.com')
print(x.headers)
Это работает, и я получаю ответ. С другой стороны, если я открываю консоль разработчика на пустой вкладке в Firefox и выполняю
var xmlhttp = new XMLHttpRequest();
xmlhttp.responseType = "json"
xmlhttp.open("HEAD", "https://www.google.com", true)
xmlhttp.onreadystatechange= function() {
if(xmlhttp.readyState==4) {
console.log(xmlhttp.getAllResponseHeaders())
}
}
xmlhttp.send()
, я получаю эту ошибку:
Блокировка перекрестного запроса : Та же политика происхождения запрещает чтение удаленного ресурса на https://www.google.com/. (Причина: отсутствует заголовок CORS «Access-Control-Allow-Origin».)
Ошибка не появляется, если я открываю веб-сайт на Firefox и затем отправляю запрос через консоль. Из того, что я до сих пор читал об этом, является то, что firefox уважает CORS, в то время как другие инструменты (например, почтальон или python запросы) - нет. Firefox четные блоки, если я пытаюсь добавить эту строку:
xmlhttp.setRequestHeader("Host", "https://www.google.com");
Есть ли способ заставить эту работу работать с Firefox? Мне нужно сделать некоторые измерения задержки, отправив запросы головы через Firefox (не могу использовать любой другой метод, если нет способа сделать эту работу)
Я также попытался сделать это через ajax в консоли браузера :
$.ajax({
url: "https://www.google.com",
type:'HEAD',
dataType: "jsonp",
crossDomain:true,
success: function(data){
alert(data);
return false;
}
})
но не повезло.