jquery $ .post - json - 发送/接收输入数据的正确方法(仅在客户端) - 两个问题任务

MEM*_*MEM 5 php jquery json .post

让我们假设我们有类似的东西:

$.post('somescript.php', 'WHAT CAN WE PUT HERE?',
        function(replyData) {
Run Code Online (Sandbox Code Playgroud)

1)默认情况下,$ .POST方法的第三个参数会读取XMLResponse响应是否正确?那么,为什么我们需要那个参数'replyData'?我们可能因为这个论点而有什么理由?

2)第二个参数接受将要发送的数据.好.我想使用json,但是,我不确定是否应该在第二个参数上使用json格式或者是否包含将包含该数据的输入表单字段?

附加说明:数据将来自输入字段,我需要通过$ .POST ajax请求将其发送到服务器.我打算用json编码和json解码php函数.

在此先感谢,MEM

And*_*y E 5

replyData参数包含服务器,然后你就可以操作,以显示在页面上返回的响应的主体,验证服务器端处理的数据成功,等等.你不必如果使用它(例如,你没有返回任何数据).

您提供的数据(采用JSON格式)仍然需要采用查询字符串的形式,例如param=value.该值还需要使用encodeURIComponent()进行正确编码:

$.post('somescript.php', 'data='+encodeURIComponent(myJSON),
    function(replyData) {
Run Code Online (Sandbox Code Playgroud)

然后,您可以通过$ _POST超全局访问PHP脚本中的JSON :

$data = json_decode($_POST['data']);
Run Code Online (Sandbox Code Playgroud)

但是,对于简单的输入字段,JSON会有点过分.使用JSON代替表单字段的名称/值对并不常见.

  • @MEM - 你不需要JSON来发布一个简单的值,只需使用`{data:$('#myInputField').val()}`作为你的第二个参数......并在你使用`$ _POST的服务器上['数据']`得到它.如果您的输入中有一个`&`,例如,你会得到各种奇怪的分裂值,POST值成对传递,必须是转义属性...将它作为对象传递jQuery做的转义非常相似到安迪的上面. (3认同)