正在从 HTML 向 AWS API 网关提交 HTTP 请求
Submitting HTTP request from HTML to AWS API gateway
我有一个带有按钮的 HTML 表单,它允许我以“text/plain”或“application/x-www-form-urlencoded”格式发送 HTTP 请求。
text/plain:
stateMachineArn=arn:aws:states:us-east-1:0111111165:stateMachine:MyStateMachine
name=ExecutionName
first_name=test
last_name=test2
application/x-www-form-urlencoded:
stateMachineArn=arn:aws:states:us-east-1:0111111165:stateMachine:MyStateMachine&name=ExecutionName&first_name=test&last_name=test2
但 AWS API 网关默认仅接收 JSON 格式(“输入”必须转义)
{
"input": "{\"first_name\" : \"test\",\"last_name\" : \"test2\"}",
"name": "ExecutionName",
"stateMachineArn": "arn:aws:states:us-east-1:0111111165:stateMachine:MyStateMachine"
}
如何将这两种格式转换为上述格式JSON?
如果您有这样的表格:
<form>
<input type="stateMachineArn" name="stateMachineArn" id="stateMachineArn" />
<input type="name" name="name" id="name" />
<label for="first_name">First name</label>
<input type="first_name" name="first_name" id="first_name" />
<label for="last_name">Last name</label>
<input type="last_name" name="last_name" id="last_name" />
<button type="submit">Submit</button>
</form>
您可以像这样在 js 中处理提交并像您一样记录响应 - 不知道您是否正在这样做:
function handleSubmit(event) {
event.preventDefault();
const data = new FormData(event.target);
const value = Object.fromEntries(data.entries());
console.log({ value });
}
const form = document.querySelector('form');
form.addEventListener('submit', handleSubmit);
此时如果您想将数据对象转换为 json,然后再将其发送到某个地方或只是为了记录它,您尝试过吗?
console.log(JSON.stringify(data));
还是这个?
console.log(JSON.stringify(value ));
编辑
发送请求:
$.ajax({
type: "POST",
url: "/webservices/PodcastService.asmx/CreateMarkers",
data: JSON.stringify(data),
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function(data){alert(data);},
error: function(errMsg) {
alert(errMsg);
}
});
我有一个带有按钮的 HTML 表单,它允许我以“text/plain”或“application/x-www-form-urlencoded”格式发送 HTTP 请求。
text/plain:
stateMachineArn=arn:aws:states:us-east-1:0111111165:stateMachine:MyStateMachine
name=ExecutionName
first_name=test
last_name=test2
application/x-www-form-urlencoded:
stateMachineArn=arn:aws:states:us-east-1:0111111165:stateMachine:MyStateMachine&name=ExecutionName&first_name=test&last_name=test2
但 AWS API 网关默认仅接收 JSON 格式(“输入”必须转义)
{
"input": "{\"first_name\" : \"test\",\"last_name\" : \"test2\"}",
"name": "ExecutionName",
"stateMachineArn": "arn:aws:states:us-east-1:0111111165:stateMachine:MyStateMachine"
}
如何将这两种格式转换为上述格式JSON?
如果您有这样的表格:
<form>
<input type="stateMachineArn" name="stateMachineArn" id="stateMachineArn" />
<input type="name" name="name" id="name" />
<label for="first_name">First name</label>
<input type="first_name" name="first_name" id="first_name" />
<label for="last_name">Last name</label>
<input type="last_name" name="last_name" id="last_name" />
<button type="submit">Submit</button>
</form>
您可以像这样在 js 中处理提交并像您一样记录响应 - 不知道您是否正在这样做:
function handleSubmit(event) {
event.preventDefault();
const data = new FormData(event.target);
const value = Object.fromEntries(data.entries());
console.log({ value });
}
const form = document.querySelector('form');
form.addEventListener('submit', handleSubmit);
此时如果您想将数据对象转换为 json,然后再将其发送到某个地方或只是为了记录它,您尝试过吗?
console.log(JSON.stringify(data));
还是这个?
console.log(JSON.stringify(value ));
编辑
发送请求:
$.ajax({
type: "POST",
url: "/webservices/PodcastService.asmx/CreateMarkers",
data: JSON.stringify(data),
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function(data){alert(data);},
error: function(errMsg) {
alert(errMsg);
}
});