我在 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/