$('form')。提交更改内容长度标头并导致请求失败?

时间:2016-07-12 01:21:32

标签: javascript php http xmlhttprequest

失败场景:

我将一个提交事件绑定到一个AJAX发布请求,以将一个硬编码的键值对发送到PHP脚本,该脚本将返回一条消息,说明请求已被正确接收。

触发提交事件并发送AJAX请求,但失败。看看萤火虫中的参数,参数看起来应该是应该的。

 $(document).ready(function(event) {

        $('form').submit(function(event) {
            $.post( "reqhandler.php", { "division": "division"});

        })
    })

工作方案:

我复制POST请求并按原样将其输入控制台。请求的执行方式与上面的相同,但是这次有效:

  $.post( "reqhandler.php", { "division": "division"});

我猜:

我在上面显示的两个场景之间的唯一区别是请求标头中的内容长度。失败的场景的内容长度标题为23,而工作的标题的内容长度为17,这应该是它应该是的。

为什么失败的情况不起作用?我不知道如何解决它。

1 个答案:

答案 0 :(得分:0)

假设您有一个带有提交按钮的表单,请使用以下外部JavaScript:

$(function(){ //load start

$('form').submit(function(){ // no need for EventObject here
  $.post('reqhandler.php', {division: 'division'}, function(res){
    console.log(res); // use Firebug
    // res could be result from PHP's echo json_encode($assocArray);
  }, 'json');
  return false;
})

}); // load end

reqhandler.php 可能如下所示:

<?php
$res = array('someProp' => 'a value', 'prop2' => array('now', 'you', 'see', 365));
if(isset($_POST['division'])){
  echo json_encode($res);
}
?>