域在AWS

时间:2017-03-02 04:56:39

标签: jquery angularjs express

我发现一些代码可以调用nodemailer从表单发送电子邮件。在表格本身上,我用硬编码路线呼叫我的路线。

$.get("http://ec2-54-204-182-151.compute-1.amazonaws.com:8080/send",passData,function(data){
            if(data=="sent")
            {
                $("#message").empty().html("Email has been sent at "+$scope.to+" . Please check inbox!");
            }
        });

在localhost上它可以工作,并且不会抱怨。当我使用我的aws域名和端口号调用相同的代码时,我得到以下内容:

  

XML解析错误:语法错误位置:   http://ec2-54-204-182-151.compute-1.amazonaws.com:8080/send?name=todd&email=tcoulson%40gmail.com&subject=hello&message=now%20we%20have%20it&to=tcoulson%40gmail.com   第1行,第1列:

有没有办法可以重写调用,因此它不依赖于硬编码路径。我开始编写$ http指令以在angularjs中发布,但是我无法读取数据。这是代码:

$http({
            url: '/send',
            method: "POST",
            data: passData,
            headers: {'Content-Type': 'application/x-www-form-urlencoded'}
        })

最后这是我试图打电话的路线。

app.post('/send',function(req,res){
        var mailOptions={
            to : 'buckscountytourofhonor@gmail.com',
            from: req.query.email,
            subject : req.query.subject,
            text : req.query.name +": "+req.query.message
        }
        console.log(mailOptions);
        smtpTransport.sendMail(mailOptions, function(error, response){
            if(error){
                console.log(error);
                res.end("error");
            }else{
                console.log("Message sent: " + response.message);
                res.end("sent");
            }
        });

我认为目前从$ http获取数据并不是req.query - 这对$ .get起作用。如果我使用$ http调用我在正确的轨道上,并且我可以编写代码清理器以删除硬编码的URL,请告诉我。

编辑:所以我能够更改我的代码,使用body-parser with express从angular获取信息到我的快速路由,并成功发送localhost上的电子邮件。但是当我把它放在AWS上时,它失败了:用于获取此资源的连接不安全。

0 个答案:

没有答案