我在gcs存储桶中有静态页面,并尝试调用API。如果我点击gcs bucket中经过身份验证的url,我会得到任何响应:https://storage.cloud.google.com//sample.html。我做错什么了吗?
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta http-equiv="X-UA-Compatible" content="ie=edge" />
<title>Info</title>
<script>
let request = new XMLHttpRequest();
request.open("GET", "http://<static_ip>/api/v1/info?id=12345678");
request.send();
request.onload = () => {
console.log(request);
if (request.status === 200) {
console.log(JSON.parse(request.response));
} else {
console.log(`error ${request.status} ${request.statusText}`);
}
};
</script>
</head>
<body></body>
</html>发布于 2020-11-21 09:12:33
我认为你在数据加载之前发送了你的响应。Resquest.open()和send方法应该在onload调用之后出现。
发布于 2020-11-24 00:27:27
如果你在chrome中进入控制台,你会看到下面的错误:
混合内容:“”https://storage.googleapis.com/mymadpbucket/index.html“”处的页面已通过HTTPS加载,但请求了不安全的XMLHttpRequest终结点“”http://%3Cstatic_ip%3E/api/v1/info?id=12345678'“”。“”此请求已被阻止;必须通过HTTPS提供内容。
你不能仅仅在https网页上提供嵌入的http内容。这是有文档记录的,还有更多的问题需要解决,比如this one
我创建了一个可以从云存储提供服务的文件的示例。在尝试此操作之前,您必须配置您的bucked的cors。您不会直接在浏览器上看到任何内容,但您会在控制台中看到图像内容(按F12键)。我使用imgur作为源,因为我不知道您尝试在该静态ip源上提供什么或如何提供服务,而且imgur有广泛的cors可用于存储。
cors.json
[
{
"origin": ["*"],
"method": ["GET", "POST", "PUT", "OPTIONS"],
"responseHeader": ["Content-Type", "Access-Control-Allow-Origin"],
"maxAgeSeconds": 100
}
]
index.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta http-equiv="X-UA-Compatible" content="ie=edge" />
<title>Info</title>
<script>
let request = new XMLHttpRequest();
request.open("GET", "https://i.imgur.com/r97IfAU.jpg");
//request.setRequestHeader('Access-Control-Allow-Headers', 'https://imgur.com');
request.send();
request.onload = () => {
console.log(request);
if (request.status === 200) {
console.log(request.response);
} else {
console.log(`error ${request.status} ${request.statusText}`);
}
};
</script>
</head>
<body></body>
</html>https://stackoverflow.com/questions/64938784
复制相似问题