javascript - 使用ajax将post数据从js发送到php而不进行类型转换

标签 javascript php jquery ajax

我在 javascript 中有对象,我需要使用 ajax 将此对象发送到 php。

我可以“只发送”这个对象,但我的问题是我需要完全按原样发送对象值类型,而不是所有内容都作为字符串:意味着 NULL 为 NULL, bool 值为 bool 值,等等...

试试这个:

var js_object= <?php echo json_encode( array("a"=>NULL, "b"=>TRUE, "C"=>1.1) ); ?>;

$.ajax({
    type: "POST",
    url: "some.php",        
    dataType: "json",
    data: JSON.stringify(js_object),
    contentType: "application/json; charset=UTF-8",
    success: function(msg){
    }
});

但这根本不向服务器发送数据。并且也不会给出任何错误。我哪里错了?

最佳答案

您的代码没有任何问题。
我刚刚向 httpbin.org 添加了一个带有 post 查询的代码片段:

$.ajax({
  type: 'POST', 
  url: '//httpbin.org/post', 
  data: JSON.stringify({name: 'test', 'null': null, 'true': true}), 
  success: onSuccess, 
  error: onError,
  dataType: 'json', 
  contentType: 'application/json; charset=UTF-8'
});
function onSuccess(data){
  // data is parsed json response
  console.log('Request copy:', data.json);
  console.log('Full response', data);
}
function onError(xhr) {
  console.log(xhr.status, xhr.responseText);
}
<script src="//cdnjs.cloudflare.com/ajax/libs/jquery/3.0.0/jquery.js"></script>

<小时/>

服务器端示例脚本:

<?php
  $json = file_get_contents('php://input');
  $data = json_decode($json, true);
  header('Content-type: application/json');
  echo json_encode($data);

关于javascript - 使用ajax将post数据从js发送到php而不进行类型转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37754443/

相关文章:

php & mysql 数据库拉取错误

php - 如何创建特定对象的数组?

javascript - 为什么数组未定义?

jquery - 如何使用 Flash 播放器移动 DOM 中的 DIV,同时不导致 Flash 播放器刷新

jquery - 如何将 jQuery flot 图表导出为图像?

javascript - 在启动相同函数之前停止执行 JQuery 函数

javascript - vaadin-combo-box/vaadin-combo-box-overlay 更改背景颜色/polymer API

java - 将 Java 代码转换为 PHP - 在对双数执行数学运算时 php 中丢失有效数字

javascript - CSS3 线性渐变带

javascript - 浏览器刷新 - 丢失服务堆栈身份验证 session 数据