首页 > 解决方案 > 如何通过直接http请求绕过asp表单的表单填充

问题描述

正如我猜想的那样,填写一个 asp 表单最终会打包所有填写的数据并向某个 url 发出 post 请求以更新数据。我如何绕过表单填写工作并使用其他外部方法传递所需的值,例如通过发出 http 请求。我如何调查必须通过的内容以及表单的目标网址是什么。

我曾尝试查看 html 脚本,但只能知道网络在按下按钮时会触发 javascript。但是,我不知道下一步。

谢谢!!

标签: javascriptc#htmlasp.netweb

解决方案


有很多方法可以做到这一点:

最简单的解决方案之一是通过 JQuery 发送 AJAX 请求。

首先,您必须启动您的功能,您可以通过将其绑定到按钮来执行此操作:

<input type="button" value="Text" onclick="mySubmit()" />

或通过将其绑定到您的提交操作:

$(document).ready(() => {
  $("form").submit(mySubmit(e));
});

在第二种情况下,您需要传递e参数来停止默认提交。您可以通过在函数e.preventDefault()的开头添加来做到这一点。mySubmit(e)

现在,mySubmit()您可以使用该表单数据做任何您需要的事情。首先你用 jQuery 选择器检索它

var formArray = $("form").serializeArray()

然后你可以对它的数据做任何你需要做的事情。要检索此数组的一个元素,您可以使用find()函数,例如:

form.find(x=>x.name === "propertyName")

完成所有需要填写的表格后,以这种方式发送 AJAX 请求:

$.ajax({
        url: form.attr("action"),
        type: form.attr("method"),
        data: JSON.stringify(form)
    });

推荐阅读