一个人能做一个真正的帖子吗?不是var=val url类型post)与AJAX XMLHttpRequest

Can one do a TRUE POST (? not var=val url type post) with AJAX XMLHttpRequest?

本文关键字:val var 不是 url AJAX post 类型 XMLHttpRequest 一个 一个人      更新时间:2023-09-26

对不起,我不太确定该怎么问这个问题。但基本上它是这个。

我刚开始使用Ajax ..在后台发送XMLhttpRequest时,我在表单数据中遇到了一些html特殊字符,特别是&过早终止变量的符号

。珍惜"你"我"的结果是"你"

现在让我从我的角度来解释这个问题。很简单……如果我使用GET方法提交常规表单,同样的事情也会发生。因为变量是url编码的…但如果我设置表单的POST方法,那么一切都保留,因为我需要它。

现在我相信这和这个(?)有关系

hr.open("POST", link, true);
hr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");

特别是form-urlencoded部分…有别的选择吗?

我不愿意在每个变量上运行一个清理例程,我通过Ajax:(

提前终止变量的&符号

&应该终止x-www-form-urlencoded数据中的值。在构建url时需要对数据进行编码。

如果我使用GET方法提交我的常规表单,同样的事情发生。因为变量是url编码的

。如果您使用GET提交常规表单,则输入的数据将被URL编码,并且作为数据出现的&字符将由%26表示,而不是原始&字符,因此相同的事情不会发生

是否有替代[application/x-www-form-urlencoded]?

你可以使用任何你喜欢的数据格式。有些比其他更容易生成(JSON特别容易从浏览器生成)。然后,您将面临在服务器上解码它们的挑战(表单处理库不倾向于做JSON,因此您必须获得原始POST数据并自己解码)。

由于您的实际问题是通过编码数据来解决的,所以这是不必要的。