在控制台

时间:2017-12-08 08:35:36

标签: javascript cors

所以,我想从我的FFQuantum控制台发送一个GET请求,并检查我作为响应收到的响应(标题)。我只想查看字段,仅此而已。

现在,当我在这个网站(https://stackoverflow.com/)上运行此脚本时,使用以下代码:

var req = new XMLHttpRequest();
var web_adress = 'https://stackoverflow.com/';
req.open('GET', web_adress, false);
req.send(null);
var headers = req.getAllResponseHeaders().toLowerCase();
alert(headers);

我的标题恰到好处,但当我在谷歌上时,我得到了错误:

对于结果,我希望看到填充弹出窗口,但我得到空的弹出窗口。这是因为当我在Google上并试图获取Stack的标题时。

我得到了什么?

  

阻止跨源请求:同源策略禁止读取   https://stackoverflow.com/处的远程资源。 (原因:CORS   标题'Access-Control-Allow-Origin'缺失。)

当我在Googles页面上时,有没有办法从StackOverflow获取标题?

1 个答案:

答案 0 :(得分:0)

不,你不能。是因为安全。浏览器不允许您跨域发送请求!要允许此操作,stackoverflow必须返回如下内容:

<template v-show="mainPage">
    <div class="col-md-12">
        <h1>1 page</h1>  
    </div>   
</template>
<template>
    <div class="col-md-12">
        <h1>2 page</h1>
    </div>
</template>

但是没有这个标题作为回应。如果你想做这样的事情 - 尝试使用不使用同源策略或其他软件的特殊浏览器。 例如Phantomjs或nodejs(如果你想用JS做)或卷曲请求等。

但是你可以做这样的事情:

Access-Control-Allow-Origin: https://google.com

在这里,您可以像使用代理一样使用主机(请记住,您需要设置google.com => yourdomain.com => stackoverflow.com

问题出在浏览器安全性=)