Javascript 使用http调用等读取html页面的DOM
我在以下地址有一个HTML页面:Javascript 使用http调用等读取html页面的DOM,javascript,ajax,api,rest,xmlhttprequest,Javascript,Ajax,Api,Rest,Xmlhttprequest,我在以下地址有一个HTML页面: 我希望我可以通过javascript通过http调用读取DOM的一些元素我正在全部尝试,但我仍然有那个该死的控制台错误:CORS标题“访问控制允许源代码”丢失 我尝试了以下ajax调用,但没有成功,而是使用了一些所谓的参数: <!DOCTYPE html> <html lang="it"> <head> <meta charset="utf-8" /> <title>MAURIZIO
我希望我可以通过javascript通过http调用读取DOM的一些元素
我正在全部尝试,但我仍然有那个该死的控制台错误:
CORS标题“访问控制允许源代码”丢失
我尝试了以下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>
毛里齐奥
$.ajax(”https://www2.casailaria.it/news/", {
数据类型:“jsonp”,
科尔斯:是的,
安全:是的,
标题:{
“访问控制允许来源”:“*”、//或“访问控制允许标头:x-request-with”
},
成功:功能(响应){
控制台日志(响应);
}
});
我希望我离解决方案不太远,我想我正在绕开它。一旦获得,我只想执行如下操作:response.getElementsByClassName('myClassOfOtherPage')
我必须添加/删除什么才能使其正常工作?
欢迎使用其他javascript解决方案以及ajax调用,只要它们是CDN的一部分。
提前谢谢 CORS旨在保护用户不被窃取用户登录的其他网站上的会话和数据 您试图通过AJaX加载的页面位于不同的域中 如果您正在本地开发,并且只想进行测试,那么您可以在启动Chrome时使用一个忽略CORS的标志 如果您想在其他域上托管页面,则需要将CORS标题添加到
https://www2.casailaria.it/news/
。如果该页面是使用PHP创建的,则可以将其添加到该页面:
标题(“访问控制允许原点:”;
注意,*是不安全的。它应该是AJaX调用发起的页面的域。您可以尝试实现两个修复:
https://cors-anywhere.herokuapp.com/https://www2.casailaria.it/news/
$.ajax("https://cors-anywhere.herokuapp.com/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);
}
});
如果浏览器是Access Control Allow Origin,则不可能从浏览器请求页面。标头不允许这样做
您可以设置一个小型服务器,并在后端请求页面无问题,或者您可以使用某种代理为您发出请求并返回数据。以前有一个名为anyorigin的代理可以做到这一点,但它是离线的。可能是因为这类事情很粗略。我刚刚发现这个网站是由Apache托管的。通常,您必须在Apache上启用cors,然后才能从其他域调用它 要在Apache上启用cors,请检查以下内容
在后端站点上启用后。再试一次,它就会起作用。我想你的问题在这里得到了回答。我试过了,什么也没有。然而,在这个问题中,引用的是json而不是html页面。另一件未指定的事情是将代码
头集访问控制允许原点“*”
放置在何处。而这两个问题和其他问题几乎从未指定将访问控制允许来源:
放在何处。只是通过大量的浏览,我发现它必须进入标题
。。。!问题仍然没有解决,我想你是糊涂了。Access Control Allow Origin位于响应标头中,不是您将发送到站点的内容。它是一种安全机制,用于防止来自未知域的资源的访问。读这个。那么我如何阅读dom呢?如果你仔细想想,我想这是可行的,而且不违反安全。如果有人可以查看页面源代码,为什么我不能通过javascript访问dom元素呢?我在这些方面不是高手。您试图访问的网站是一个新闻网站,因此它们具有非常强的安全性。您不能在客户端自行启用跨站点访问或读取策略。如果您使用的是服务器端脚本语言,那么可以使用代理。不幸的是,我不能使用php,否则它会很完美,有问题的页面会这样做…如果你不能更改源页面,那么就永远不可能用AJAX从不同的域获取它。我可以,但是通过客户端。这个页面是静态的,完全用html css和javascript+引导开发的……我看到了一个可行的解决方案。此时,ajax调用应该如何构造?你能给我举个例子吗?我只是建议修改url并保持ajax调用结构和你的一样。我在回答中添加了修改后的ajax调用。欢迎光临SO。您可能希望将链接的相关部分放在您的答案中,因为链接可能会被删除或过期。