是否可以使用 php 以编程方式填写 Ajax 表单?
Posted
技术标签:
【中文标题】是否可以使用 php 以编程方式填写 Ajax 表单?【英文标题】:Is it possible to fill in an Ajax form programatically using php? 【发布时间】:2010-01-13 12:01:24 【问题描述】:我正在使用 php 填写表格。现在,表单的许多字段都使用 ajax。
例如
选择[国家] (ajax 将显示填充该国家/地区的下拉列表)
选择[状态] (ajax 将显示充满城市的下拉菜单)
选择[城市] (ajax 将启用提交按钮)
如果是简单的基于 html 的表单,可以很容易地用 cURL 填充。但是如果表单使用 ajax 填充下拉字段怎么办。
谢谢
【问题讨论】:
【参考方案1】:当您使用 curl“填充”表单时,您实际上是在 POST 已输入/输入到表单中的数据。
只要您知道必须使用哪些数据,就不需要发出 Ajax 请求。
因此,解决方案是:
首先获取数据列表(例如,通过在浏览器中使用表单) 了解必须如何使用这些数据(通过观察表单的“正常”工作方式) 使用您的 curl 请求发布正确的值。最后,您的 curl 请求应该与提交表单时浏览器发出的请求相同——独立于之前发送的 Ajax 请求(这些仅对获取数据)
好吧,除非 Ajax 请求实际上是在服务器上“写入”某些东西——但这种情况很少见。
【讨论】:
【参考方案2】:如果是简单的基于html的表单,可以很方便的用cURL填充
我不清楚你在这里的意思。据我所知,cURL 是一种用于发出 HTTP 请求的工具。它不能“填写表格”(不像,例如,WWW::Mechanize)。我错了吗?
我认为您的意思是:“如果它是一个简单的基于 HTML 的表单,我可以使用 cURL 轻松构建一个 HTTP 请求,该请求提交与使用浏览器相同的查询字符串或 POST 数据。”我将继续这个假设。
Ajax 的使用(本身)不会阻止您手动构建表单数据并正常提交。它只是让确定您需要提交哪些数据变得更加困难。
如果您没有按正确的顺序请求所有数据位,远程系统可能会以这样的方式实现(例如,如果您在最后提交完整数据而不请求列表,它将失败)一个国家的城市)。强调“可能”,这不是实现系统的明智方式。
您可能还想使用 cURL 发出多个请求,以便您可以获取城市列表(以及可能与它们关联的任何 id)并以编程方式访问它们。
【讨论】:
以上是关于是否可以使用 php 以编程方式填写 Ajax 表单?的主要内容,如果未能解决你的问题,请参考以下文章
是否可以通过 Spring Security 以编程方式进行身份验证并使其持久化?