繁体   English   中英

正确发送HTTP发布请求

[英]Sending a HTTP Post Request correctly

我有一个简单的AWS Lambda函数,该函数必须接收HTTP Post数据并进行打印:

AWS Lambda函数

var aws = require('aws-sdk');
var querystring = require('querystring');
var ses = new aws.SES();

exports.handler = function(event, context) {
    console.log("Incoming: ", event);             
};

我的HTML表单:

<form action="http://myawsfuncurl" method="POST">
   <input type="textarea" width="200" height="100" value="Hello"><br>
   <input type="submit" value="Send">
</form>

控制台仅打印:传入:{}
没有收到数据。

但是,当我通过Java代码发送HTTP Post时,此方法工作正常:

Java代码

URL obj = new URL("http://myawsfuncurl");
HttpsURLConnection con = (HttpsURLConnection) obj.openConnection();
//add reuqest header
con.setRequestMethod("POST");
con.setRequestProperty("User-Agent", USER_AGENT);
con.setRequestProperty("Accept-Language", "en-US,en;q=0.5");

String payload = "hello";

// Send post request
con.setDoOutput(true);
DataOutputStream wr = new DataOutputStream(con.getOutputStream());
wr.writeBytes(payload);
wr.flush();
wr.close();

我如何也可以通过HTML表单使用它?

我尝试通过http POST表单发送邮件时遇到了同样的问题。

我通过一个Ajax请求发送了此请求,该请求将JSON数据发送到该函数。

希望这样的事情会有所帮助。 如果将其放在html页面上的脚本标签中。

<script>
    $.support.cors = true;
    $('#id_of_form').submit(function(event){
        event.preventDefault();         
        $.ajax(
            {
                type: 'POST',
                url: 'http://myawsfuncurl',                 
                dataType: 'json',
                data: {
                    ParamA: $('#id_of_textarea").text()                 
                },
                error: function(obj, msg, exc){},
                success: function(data){
                   alert('complete');                       
                }
            }
        )

        return false;
    });
</script>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM