问题描述
我创建并指定了路径参数为id并使用它从db获取数据,然后使用http从数据库发布数据。我正在使用AWS ApiGateway来管理此终端节点,但是,当我传递ID并尝试在没有请求主体或某些随机有效请求主体的api网关上测试终端节点时,它显示:
<!DOCTYPE html>
<html>
<body>
<video id="myVideo" width="320" height="176" onclick="playOrPause();" oncontextmenu="return false;" controls >
<source src="https://www.w3schools.com/tags/mov_bbb.mp4" type="video/mp4">
<source src="https://www.w3schools.com/tags/mov_bbb.ogg" type="video/ogg">
Your browser does not support HTML5 video.
</video>
<div>
<input type="button" id="btnRewind" name="btnRewind" value="Rewind" onclick="rewindVideo();" />
<input type="button" id="btnPlay" name="btnPlay" value="Play" onclick="playVideo();" />
<input type="button" id="btnPause" name="btnPause" value="Pause" onclick="pauseVideo();" />
</div>
<script>
var video = document.getElementById("myVideo");
function playOrPause() {
if (video.paused) {
playVideo();
} else {
pauseVideo();
}
}
function playVideo() {
video.play();
}
function pauseVideo() {
video.pause();
}
function rewindVideo() {
//video.currentTime -= 0.5;
video.playBackRate = -2;
video.play();
}
</script>
<p>Video courtesy of <a href="https://www.bigbuckbunny.org/" target="_blank">Big Buck Bunny</a>.</p>
</body>
</html>
"errors": [
{
"title": "Error in API Gateway","code": "DEFAULT_5XX"
}
]
解决方法
要回答您的问题,是的,我们可以在没有主体的情况下在API网关上进行POST。错误很明显,它是路径中的非法字符。
有一个post on AWS FAQ。解决方案是在集成请求窗格中添加一个代理路径变量,这样它就不会对该路径的此特定路径运行任何验证检查。