javascript - 通过 http 调用等读取 html 页面的 DOM

标签 javascript ajax api rest xmlhttprequest

我在以下地址有一个 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/

相关文章:

JavaScript 如何将字符串转换为函数

c# - MVC 和 JQuery : Best practice for retrieving form data

jQuery AJAX post 不工作,但适用于curl

java - 没有从 Retrofit 获得任何数据

javascript - 更改 sinfo 消息的条目数

javascript - 如何转义撇号值

Javascript循环嵌套点击事件

ios - swift ios 使用图像或 UIView 显示虚拟占位符,直到数据加载

java - 在 Java 程序中使用 Apache Ant API 以编程方式构建源文件

java - 我们是否必须发布与 Controller 中的 pojo 对象具有完全相同字段的 json 对象?