Php 通过HTTP发布数据之间的差异<;表格>;在数据编码方面通过AJAX

Php 通过HTTP发布数据之间的差异<;表格>;在数据编码方面通过AJAX,php,ajax,forms,Php,Ajax,Forms,有人能解释一下通过传统的HTTP和通过AJAX提交数据在数据编码方面的主要区别吗 实际上,在通过AJAX向服务器发送数据时,我面临着数据丢失的问题。之后的所有内容都将丢失 如果我通过jQueryAjax将以下数据发送到服务器 <p>test 1</p> <p>&nbsp;</p> <p>test 2</p> 那么这是否意味着HTTP表单会自动执行这种编码呢 如果我们必须通过AJAX将这些数据发送到服务器,那么我们必

有人能解释一下通过传统的HTTP
和通过AJAX提交数据在数据编码方面的主要区别吗

实际上,在通过AJAX向服务器发送数据时,我面临着数据丢失的问题。
之后的所有内容都将丢失

如果我通过jQueryAjax将以下数据发送到服务器

<p>test 1</p>
<p>&nbsp;</p>
<p>test 2</p>
那么这是否意味着HTTP表单会自动执行这种编码呢

如果我们必须通过AJAX将这些数据发送到服务器,那么我们必须使用一些编码功能对其进行编码,例如
encodeURIComponent()

我使用了
encodeURIComponent()
,发现在服务器上成功地访问了整个数据,就像正常的HTML表单提交一样


任何人都可以详细介绍一下这个主题吗?

HTML表单将根据
enctype
字段值的三个标准之一,在表单字段中提交数据

Ajax将允许您发送一个字符串,您可以根据自己的喜好对其进行格式化。您还可以传递某些类型的对象,这些对象将使用某种标准进行编码(例如,将使用您可以在表单中使用
enctype
选择的相同多部分格式进行编码)

encodeURIComponent
将对查询字符串或应用程序/x-www-form-urlencoded请求的特殊字符进行转义,转义方式与默认情况下表单的转义方式相同,或者如果您将
enctype
设置为
application/x-www-form-urlencoded
,则应在字符串中的每个键和值上运行它,如果您使用它进行编码手动删除数据。不过,您可以使用
URLSearchParams
对象

const html = `<p>test 1</p>
<p>&nbsp;</p>
<p>test 2</p>`;
const data = new URLSearchParams();
data.append("data", html);
const response = await fetch("http://example.com", { method: "POST", body: data });
const responseData = await response.json();
console.log(responseData);
consthtml=`test1

测试2

`; const data=新的URLSearchParams(); data.append(“数据”,html); const response=等待获取(“http://example.com“,{方法:“张贴”,正文:数据}); const responseData=await response.json(); 控制台日志(responseData);
因为您提到了jQuery,所以可以将其传递给普通对象:

const html = `<p>test 1</p>
<p>&nbsp;</p>
<p>test 2</p>`;
const data = { data: html };
const response = await jQuery.ajax("http://example.com", { method: "POST", data: data });
console.log(response);
consthtml=`test1

测试2

`; const data={data:html}; const response=wait jQuery.ajax(“http://example.com“,{方法:“POST”,数据:data}); 控制台日志(响应);
const html = `<p>test 1</p>
<p>&nbsp;</p>
<p>test 2</p>`;
const data = new URLSearchParams();
data.append("data", html);
const response = await fetch("http://example.com", { method: "POST", body: data });
const responseData = await response.json();
console.log(responseData);
const html = `<p>test 1</p>
<p>&nbsp;</p>
<p>test 2</p>`;
const data = { data: html };
const response = await jQuery.ajax("http://example.com", { method: "POST", data: data });
console.log(response);