javascript - $ ('form' ).提交更改内容长度 header 并导致请求失败?

标签 javascript php http xmlhttprequest

失败场景:

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

提交事件触发并发送 AJAX 请求,但失败。查看 firebug 中的参数,参数看起来与它们应该的完全一样。

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

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

        })
    })

工作场景:

我复制 POST 请求并将其按原样输入控制台。请求就像上面一样使用相同的参数执行,但这次它有效:

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

我的猜测:

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

为什么失败的场景不起作用?我不确定如何修复它。

最佳答案

假设您有一个带有提交按钮的表单,请使用以下外部 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);
}
?>

关于javascript - $ ('form' ).提交更改内容长度 header 并导致请求失败?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38318585/

相关文章:

javascript - 更改检查页面上元素的 async/await 函数以与 Safari 10 配合使用

javascript - 如何使用 Javascript 打印 unicode json

php - Laravel 5.6 前的浏览量

http - 如何获取HTTPS网页?

c# - 透明代理 - 从端口 80 到 443

javascript - 如何在具有类型的 TypeScript 项目中 Vue.use() 一个 javascript 插件

javascript - IE在document.cookie.replace处给cookie添加两个下划线

php - MySQL 连接 : globally or in object?

php - 如何通过邮件发送从数据库中获取的数据

http - 为什么基于主机 header 路由请求是代理流量的好方法?