当我尝试运行嵌入在浏览器中的JavaScript应用程序时出现此错误:
browser.html:1无法加载https://iam.bluemix.net/oidc/token:对预检请求的响应未通过访问控制检查:所请求的资源上没有'Access-Control-Allow-Origin'标头。因此,不允许访问原始“空”。
这是我的网页:
<!DOCTYPE html>
<html>
<head>
<script src="bundle.js"></script>
</head>
<body>
<h1>A Web Page</h1>
<p id="demo">A Paragraph</p>
</body>
</html>
我通过在浏览器中打开/path/to/browser.html
在本地运行它。
这是browser.js
的内容:
var cos = require('ibm-cos-sdk');
var config = {
endpoint: 'endpoint',
apiKeyId: 'api_key',
serviceInstanceId: 'instance_id',
ibmAuthEndpoint: 'https://iam.bluemix.net/oidc/token',
s3ForcePathStyle: true
};
var cos = new cos.S3(config);
var bucket = 'bucket_name';
function doCreateBucket() {
return cos.createBucket({
Bucket: bucket,
CreateBucketConfiguration: {
}
}).promise();
}
doCreateBucket();
bundle.js
是通过browserify browser.js -o bundle.js
生成的。
有什么办法解决吗?
其他信息
我在网上偶然发现一些问题,这表明我的问题是因为正在使用file://
来方便地访问该页面,因此我应该尝试http://
,因此我将该页面部署到了网络服务器上并通过{{1 }},但这没什么区别。