javascript - 获取使用 JavaScript 提交时从表单生成的 URL

标签 javascript ajax form-submit dom-events onsubmit

是否可以在触发“提交”事件时捕获从表单生成的 URL?

我知道我可以从数据生成 URL

我不是在谈论表单的操作 URL

我的意思是 ?field=value&other-input-name=value& ... 部分

场景:

我们有一个表单和一个将 Ajax 请求发送到 PHP 脚本的 JavaScript 脚本。

我通常是这样的:

  • 注册表单的提交事件
  • 防止默认行为
  • 从数据构建 URL
  • 使用构建的 URL 打开 HTTP 请求

现在,我想知道,当正常触发“提交”(在非 Ajax 请求上)时,URL 由表单构建,然后使用该 URL 将数据发送到 PHP 副本。

我如何“捕捉”该 URL?事件本身没有任何线索似乎没有存储它,或者至少我还没有找到它。

它一定在某个地方!

最佳答案

这可以通过对象 URLSearchParamsFormData 轻松实现。

FormData 是表单的对象表示,用于与 fetch API 一起使用。它可以像这样从现有元素构造:

let form = document.forms[0];
let formData = new FormData(form);

然后是 URLSearchParams 对象,它可用于构建查询字符串:

let search = new URLSearchParams(formData);

现在您需要做的就是对搜索对象调用 toString 函数:

let queryString = search.toString();

完成!

关于javascript - 获取使用 JavaScript 提交时从表单生成的 URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28333613/

相关文章:

javascript - CanvasJS 图表无法使用幻灯片/旋转木马容器正确呈现

javascript - 使用indexOf在对象数组中搜索特定属性

javascript - 覆盖ajax调用中的javascript变量

php - 从url获取外部页面标题

javascript - $.post 不工作(任何地方)!为什么?

jquery - 收集 Ajax 提交表单数据的简单函数

javascript - 根据弹出窗口中单击的按钮返回 true 或 false

javascript - 在对象内部创建对象然后添加到嵌套对象时,控制台仅返回 "object"而不是添加到其中的值

javascript - 切换选项卡后 setInterval() 的行为很奇怪

java - 第二次提交 multipart/config 后出现 NullPointerException - Tomcat