我在以下地址有一个 HTML 页面:
https://www2.casailaria.it/news/
我希望我可以通过 javascript 通过 http 调用读取 DOM 的一些元素。
我正在尝试所有这些,但我仍然遇到该死的控制台错误:CORS header“Access-Control-Allow-Origin”丢失
。
我尝试了以下 ajax 调用但没有成功,并在其中添加了所谓的参数:
<!DOCTYPE html>
<html lang="it">
<head>
<meta charset="utf-8" />
<title>MAURIZIO</title>
<link rel="stylesheet" type="text/css" href="background.css">
</head>
<body>
<script src="https://code.jquery.com/jquery-3.5.1.js"
integrity="sha256-QWo7LDvxbWT2tbbQ97B53yJnYU3WhH/C8ycbRAkjPDc=" crossorigin="anonymous"></script>
<script>
$.ajax("https://www2.casailaria.it/news/", {
dataType: "jsonp",
cors: true,
secure: true,
headers: {
'Access-Control-Allow-Origin': '*', // or 'Access-Control-Allow-Headers: x-requested-with'
},
success: function (response) {
console.log(response);
}
});
</script>
</body>
</html>
我希望我离解决方案不会太远,而且我想我正在绕过它。获得后,我只想执行如下操作: response.getElementsByClassName('myClassOfOtherPage')
我必须添加/删除什么才能使其正常工作?
欢迎其他 JavaScript 解决方案以及 ajax 调用,只要它们是 CDN 的一部分。
预先感谢!
最佳答案
CORS 旨在保护用户免遭窃取用户登录的其他网站上的 session 和数据。
您尝试通过 AJaX 加载的页面托管在不同的域上。
如果您在本地进行开发,并且只想进行测试,则可以使用一个标志来启动 Chrome 以忽略 CORS。 Here is how to do that
如果您想在不同的域上托管页面,则需要将 CORS header 添加到 https://www2.casailaria.it/news/
。如果该页面是使用 PHP 创建的,您可以将其添加到该页面:
header("Access-Control-Allow-Origin: *");
请注意,* 不安全。它应该是发起 AJaX 调用的页面的域。
关于javascript - 通过 http 调用等读取 html 页面的 DOM,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61814468/