Python 如何返回一个";“关闭窗口”;从GET呼叫中发出命令?
由于我所使用的平台存在一些限制,我需要使用GET方法来处理API调用 当用户按下按钮时,浏览器将导航到新窗口中的相关URL。此URL是使用GET方法的API调用。这个API只是在后台运行一些任务,所以我想返回一个命令来关闭当前窗口 我无法更改GET方法,也无法阻止窗口打开 我是否可以返回自动关闭浏览器窗口的值?也许是一个简单的html页面和一个脚本?像“值已更改,返回”和“返回”命令之类的东西可能也会起作用,我想是吧Python 如何返回一个";“关闭窗口”;从GET呼叫中发出命令?,python,amazon-web-services,rest,aws-lambda,aws-api-gateway,Python,Amazon Web Services,Rest,Aws Lambda,Aws Api Gateway,由于我所使用的平台存在一些限制,我需要使用GET方法来处理API调用 当用户按下按钮时,浏览器将导航到新窗口中的相关URL。此URL是使用GET方法的API调用。这个API只是在后台运行一些任务,所以我想返回一个命令来关闭当前窗口 我无法更改GET方法,也无法阻止窗口打开 我是否可以返回自动关闭浏览器窗口的值?也许是一个简单的html页面和一个脚本?像“值已更改,返回”和“返回”命令之类的东西可能也会起作用,我想是吧 API后端是AWS Lambda中的python脚本,由AWS API网关调用
API后端是AWS Lambda中的python脚本,由AWS API网关调用您可以更改python Lambda脚本以返回HTML并执行
window.close()
javascript函数。确保在响应中将内容类型
标题设置为文本/html
。我刚刚使用通过API网关调用的Python 3.7运行时在新创建的AWS lambda函数上测试了这一点,至少在Chrome上工作得很好
def lambda_handler(event, context):
html_body = """
<html>
<head>
<script type="text/javascript">
window.close();
</script>
</head>
<body>
<p>Operation succcessful. You can safely close this window.</p>
</body>
</html>
"""
return {
'statusCode': '200',
'body': html_body,
'headers': {
'Content-Type': 'text/html'
}
}
def lambda_处理程序(事件、上下文):
html_body=“”
window.close();
操作成功。您可以安全地关闭此窗口
"""
返回{
“状态代码”:“200”,
“body”:html_body,
“标题”:{
“内容类型”:“文本/html”
}
}
我无法实现这一点,我可以将响应主体映射为正确的主体,但标题坚持为application/json;我怎样才能改变这一点?在integration response->header mapping下,我放置了“Content Type”和“integration.response.header.Content Type”。在映射模板上,我放置text/html和$input.path('body')。在methodresponse下,我将标题设置为Content-Type,将主体设置为text/html,model-empty。