【问题标题】:how to bypass form filling of asp form with direct http request如何通过直接http请求绕过asp表单的表单填充
【发布时间】:2019-01-08 00:15:59
【问题描述】:

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

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

谢谢!!

【问题讨论】:

  • 到目前为止你尝试过的代码是什么? C# 有多种不同的方式对 Web 服务执行 POST 和 PUT 请求。我不确定我们是否能准确回答,不知道已经采取了哪些步骤。 idownvotedbecau.se/nocode
  • 这是一个非常广泛的问题,没有具体的答案。也就是说,当您访问相关站点并“查看源代码”时,您的浏览器中已经拥有所需的一切。我们无法教给您足够的 Javascript 和一般 Web 开发技能来回答这个问题。
  • @VictorProcure OP 询问有关从网页发布表单的问题,而不是如何使用 C# 进行。公平地说,这甚至不应该被标记。
  • 很抱歉给您带来了困惑。但是,因为我是 http 请求的新手。我之前学到的只是简单地将数据发布到外部服务器中的 php 中。但我不知道如何跟踪提交表单时网络发出的 http 请求。一种可能的方式似乎是做一个c#项目,假装成web,直接发布数据。那么,我怎样才能找到网络发布的内容,例如 url、数据。或者我要进一步调查的主题名称是什么?谢谢!
  • 您能否正确发布数据并获得回复?如果是这样,您可以通过学习如何在您使用的任何 Web 浏览器中使用开发人员工具来找到所需的所有信息。还有像 Fiddler 这样的工具可以捕获所有网络流量,以便您检查它。

标签: javascript c# html asp.net web


【解决方案1】:

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

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

首先你必须启动你的函数,你可以通过将它绑定到按钮来做到这一点:

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

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

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

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

现在,在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)
    });

【讨论】:

    猜你喜欢
    • 2014-08-28
    • 1970-01-01
    • 2011-09-09
    • 2012-03-26
    • 2022-11-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-15
    • 2013-09-04
    相关资源
    最近更新 更多