我是一名前端开发人员。 我想获得元数据。 所以我使用metascraper libraray。 ==> https://www.npmjs.com/package/metascraper 它是npm libraray。
但是我面临着一个意外的困难,即错误。
我该怎么办? 请帮帮我。
Metascraper
.scrapeUrl("http://www.naver.com")
.then((metadata) => {
console.log(metadata)
})
答案 0 :(得分:0)
由于您无法控制目标,唯一的解决方案是通过本地服务器代理请求。
为此,您需要在PHP / Node之类的东西中创建服务器端脚本,该脚本接收URL并执行服务器到服务器请求以获取响应并将其输出。您的Metascraper将调用您的本地服务器端脚本,并传递目标URL。这可行,因为服务器到服务器的调用不受CORS的约束。
如果您确实碰巧控制了目标,那么您可以输出CORS标头(access-control-allow-origin)来禁用每个人的CORS或域名白名单。
答案 1 :(得分:0)
你能分享一下你在控制台浏览器中得到的错误吗?
我曾尝试向naver.com提出同样的请求。
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script>
$(function(){
$.get('https://www.naver.com/').then(function(response) {
console.log(response);
});
})
</script>
得到了下一个错误:
XMLHttpRequest cannot load https://www.naver.com/. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:9080' is therefore not allowed access.
因此我们可以得出结论,naver.com服务器不支持CORS。 您试图使用的库没有问题。