【发布时间】:2021-08-28 18:43:04
【问题描述】:
大家好!
我正在尝试部署我的网站,我将我的前端文件放在 Amplify 应用程序中,该应用程序为我提供了一个 HTTPS 网址。 我的目标是将我的后端代码加载到 EC2 ubuntu 机器并通过 pm2 运行它。 我很难理解如何做到这一点,我正在用 nodejs 编写后端代码,并且正在使用 express 框架。 当我在本地开发时,一切运行良好。 我的后端代码:
app.get('/db', (req,res) => {
let ddb = new AWS.DynamoDB({ apiVersion: "2012-08-10" });
const params = {
TableName: "blablabla",
};
let itemObj = [];
ddb.scan(params, function (err, data) {
if (err) {
console.log("Error", err);
} else {
console.log("Success", data);
data.Items.forEach(function (element, index, array) {
itemObj.push(data.Items);
res.status(200).json(itemObj);
});
}
})
相关前端代码:
function getData(username){
var xmlhttp = new XMLHttpRequest();
var url = "http://localhost/db";
xmlhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) { //request completed
result = JSON.parse(this.responseText);
blablabla
}
};
xmlhttp.open("GET", url, true);
xmlhttp.send();
}
当我使用 localhost url 并通过我的计算机 (npm start server..) 运行服务器时,我确实得到了我在放大服务上寻找的数据。 但是当我使用 EC2 机器的弹性 IP 地址时出现错误:“通过 HTTPS 加载,但请求了不安全的 XMLHttpRequest 端点,此请求已被阻止”
有什么方法可以允许这类请求吗? 我什至使用 EC2 机器的正确 IP 吗? 在我看来,如果 EC2 为我提供了一个 HTTPS 地址,它会正常工作,我是对的还是与它无关? 提前致谢。
【问题讨论】:
标签: node.js express amazon-ec2 deployment aws-amplify