- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 superagent(与 npm 一起安装)从 api 获取信息。以下是 JavaScript 文件中的代码:
const http = require('superagent');
http
.get('https://random.dog/woof.json')
.end( function(err, res) {
console.log(err);
console.log(res.body);
});
我可以通过输入 node app.js 在终端中测试这一点。控制台中出现两条消息,首先是 null
,然后是 { url: 'https://random.dog/2d394360-33e1-4c27-9e64-d65a2ab82d5b.jpg' }
,这就是我正在寻找的。然后,我使用 browserify 命令 (browserify app.js -o bundle.js
) 使我的 javascript 文件可在 html 文件中使用。这是我的 html 文件的代码:
<html>
<head>
</head>
<body>
<h1>Text</h1>
<script src="bundle.js"></script>
</body>
</html>
比较简单。这只是为了确保一切顺利。我在浏览器(最新版本的 Firefox)中打开了 HTML 文件,然后打开了开发者控制台。 This error appeared 。我有点生气。我在编写 Discord 机器人时使用了完全相同的 API,并且没有遇到任何问题。所以,很自然地我就换了浏览器。同样的错误。我做了一些研究,但仍然有点困惑,所以我尝试设置一个标题。新建js文件:
const http = require('superagent');
http
.get('https://random.dog/woof.json')
.set('Access-Control-Allow-Origin', '*')
.end( function(err, res) {
console.log(err);
console.log(res.body);
});
这一次,this error出现了。似乎也是如此。幸运的是,我拥有一个小网站,所以我将这些html和js文件上传到服务器。我有完全相同的错误。我什至将 .set('Access-Control-Allow-Origin', '*')
更改为 .set('Access-Control-Allow-Origin', 'http://example.com')
(当然,example.com 是我网站的域名)。没有什么区别。我决定看看是否可以使用 html 文件中的 javascript 发出请求,而不调用任何其他源。我尝试了这段代码:
var HttpClient = function() {
this.get = function(aUrl, aCallback) {
var anHttpRequest = new XMLHttpRequest();
anHttpRequest.onreadystatechange = function() {
if (anHttpRequest.readyState == 4 && anHttpRequest.status == 200)
aCallback(anHttpRequest.responseText);
}
anHttpRequest.open( "GET", aUrl, true );
anHttpRequest.send( null );
}
}
var client = new HttpClient();
client.get('http://random.dog/woof.json', function(response) {
console.log(response);
});
并在 Firefox 中打开新的 html 文件。我遇到了与第一次相同的错误。
为什么我会收到这些错误?我可以做什么来修复这些错误?提前致谢。
最佳答案
默认情况下,同源策略会阻止对不同域的 Ajax 请求。允许此类 Ajax 请求的唯一方法是通过 CORS,这要求服务器启用 CORS。
https://developer.mozilla.org/en-US/docs/Web/HTTP/Access_control_CORS https://www.html5rocks.com/en/tutorials/cors/
服务器必须具有 Access-Control-Allow-Origin
header ,而不是客户端。例如,尝试调用 https://api.github.com/
而不是 https://random.dog/woof.json
,您会发现您可以访问该 URL,因为它启用了 CORS header 。
历史上,JSON-P 也被用作同源策略的解决方法,但它通常不如 CORS,并且还需要服务器支持。
解决此问题的第三种方法是通过您用于站点的服务器反向代理远程服务器,以便源匹配。这种方法在某些情况下可以很好地工作,但会带来其自身的扩展和安全考虑。
关于javascript - 带有 Superagent Access-Control-Allow-Origin 错误的 GET 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46187126/
我正在 Angular js和sails.js(node.js框架)之间的cors问题上挣扎 我尝试修复错误:XMLHttpRequest无法加载http://localhost:1337/en/au
我在我的应用程序中动态创建一个 iframe,结果如下所示: 这样的沙箱配置是否安全(特别是允许将 iframe 内容视为来自同一来源)? 最佳答案 正如 Namey 评论的那样,allow-sam
突然,似乎没有更改我的网络应用程序中的任何内容,我在 Chrome 中打开它时开始收到 CORS 错误。我尝试添加 Access-Control-Allow-Origin: *标题。然后我得到这个错误
我正在使用 Ionic Framework 开发应用程序。 在后端,我为 api 编写了一个 Flask 应用程序,如下所示: @API.route("/saverez",methods=["POST
我正在尝试从 onesignal api 发送 POST 请求 代码 axios({ method: 'post', url: 'https://onesignal.com/api/v1/no
我一直在寻找一些类似的问题来寻找答案,但我找不到。我有一个带有 express 的 node.js 服务器: app.use(function(req, res, next) { res.head
我使用 Google Cloud Functions 创建了一个 API 端点,并试图从 JS 获取函数中调用它。 我遇到了我很确定与 CORS 或输出格式有关的错误,但我不确定发生了什么。其他一些
当我尝试从我的 Angular 6 应用程序访问 Webhdfs 时,我收到如下所示的错误。在我看来,我几乎尝试了所有方法,包括更改 core-site.xml 和 hdfs-site.xml 中的设
我刚刚学习 ajax 和 cors 一些东西,现在我想知道 chrome 插件“allow-control-allow-origin”是如何工作的。 当我尝试执行正常的 ajax 请求时,控制台显示错
我正在努力理解如何允许用户在列表中创建新记录,但只允许创建者更新他们自己的帖子。 例如。以下结构: post { post1: { author: "user1"
我们的网络上有 2 个内部(内联网)Windows 服务器,仅适用于本地网络。在 server1 上安装了 Spark,我们可以在其中查询 Jabber 信息,如下所示: http://server1
所以在 routing.yml 中我定义了以下路由,以便编辑和删除特定设置: 路由.yml: settings.editDefaults: path: settings/{id}/d
我哪里出错了 title $.get("http://api.angel.co/1/tags/1654/startups?callback=aaa", function(data
首先,对您可能犯的语法错误表示歉意。我的英语不是很好。 我是 Spring 新手,我正在尝试创建基本身份验证安全性。 我正在尝试配置一个端点具有公共(public)访问权限,而其他端点则具有用户访问权
这个问题已经有答案了: 已关闭11 年前。 Possible Duplicate: NULL in MySQL (Performance & Storage) 如果出现以下情况,您是否强烈建议取消选中
我正在尝试将我的一个网站中的内容加载到另一个网站中: $('#include-from-outside').load('http://lujanventas.com/plugins/banne
这里出了什么问题? OPTIONS https://twitter.com/oauth/request_token 401 (Unauthorized) jsOAuth-1.3.4.js:483 XM
allow-control-allow-origin : * header 存在于 API 响应中,但浏览器仍显示错误。网络 403 错误。 这是来自 API 的示例响应 header : Acces
在 Go 中制作 slice 时的 capacity 参数对我来说意义不大。例如, aSlice := make([]int, 2, 2) //a new slice with length and
Gitlab 保护分支中“允许推送”和“允许 merge ”是什么意思 最佳答案 引用 Gitlab Documentation here Using the "Allowed to push" an
我是一名优秀的程序员,十分优秀!