javascript - 我想要一个 JS 和 HTML 中的发布请求函数,就像我的 Python 代码一样
问题描述
我正在尝试制作一个 html 页面。我擅长 Python,但不擅长 JS。我有一个 Python 代码,但我想要这样的 JS 代码。任何人都可以帮助我:)
这是我的 Python 代码:
import requests
post_url = "MY_REQUEST_URL"
data = {"data1": "A_DATA_FROM_USER", "data2": "MY_DATA"}
response = requests.post(post_url, data=data)
result = response.headers["MY_HEADER_NAME"]
这是我的 HTML 代码:
<!DOCTYPE html>
<html>
<body>
<h2>My Heading</h2>
My Input: <input type="text" id="userdata" name="url" value="A_DATA_FROM_USER"/>
<br/>
<input type="button" value="Submit" onclick="A_FUNCTION"/>
<br/>
<br/>
<div id="output"></div>
<script>
THIS SCRIPT I WANT
</script>
</body>
</html>
我想要一个 JS 脚本来使用 HTML 获取用户的输入并在 HTML 中显示输出。
结果(在python代码中)将显示在输出元素中(在html代码中)
userdata = A_DATA_FROM_USER(来自用户的输入)
请在 JS 中使用 MY_REQUEST_URL、A_DATA_FROM_USER、MY_DATA、MY_HEADER_NAME
解决方案
要进行后调用,您可以使用纯 JavaScript(获取函数),但通常网站使用允许您使用 AJAX 的 jquery 库。Ajax 附带的功能允许您使用 $.ajax() 函数进行简单的发布请求。
您可以通过 cdn 使用 jquery,因此您不必下载它。因此,在您的自定义添加包含然后脚本之前。像这样:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
<script>
Custom script
</script>
在纯 javascript 中,要与您必须使用的 HTML 元素进行交互
document.querySelector() 或 document.getElementById()。
例如,要将字符串放在输出 div 中,您应该这样做:
document.getElementById("output").innerHTML = "Result that shows inside the div";
如果你改用jquery,你可以用它来和dom交互(jquery有很多工具,不仅仅是用于HTTP请求的AJAX)。
例如:
$("#output").html("Result that shows inside the div");
$.ajax 的语法很简单,这里是您尝试构建的工作代码,将其添加到您的空<script> </script>
标签中
$.post(
"mydomain.com/my-python-page",
{
userdata: $("#userdata").val() //Gets the userdata input value
}
)
.done(function(data, textStatus, request) { //Request success
let stringToShow = request.getResponseHeader('the-header-value-you-want-to-take');
$("#output").html(stringToShow); //Shows the screen in div with id="output"
})
.fail(function() { //Request fails
console.log("Error!");
});
}
现在更改mydomain.com/my-python-page
the-header-value-you-want-to-take
您要在输出 div 中显示的响应标头值。
显然你必须把它放在你写的函数里面onClick="function_name()"
推荐阅读
- python - 尽管安装了两个模型,但没有名为“pandas”、“mysql”的模块
- installshield - 如何在 InstallShield 脚本中读取命令行参数
- .net - 在 .NET Framework 应用程序中为 .NET Core 应用程序创建虚拟目录
- c# - Polly 重试并不总是捕获 HttpRequestException
- git - 停止 git 更新远程文件
- c - C char 数组 (char*) 的 JSON 序列化
- android - 在android上6中查看pdf中的问题android studio
- javascript - 访问函数内的覆盖变量
- php - 要求在 2 天内找出日期
- css - 我无法在 SVG 中构图此图像