Jquery Ajax总是返回JSON的长度

Jquery Ajax总是返回JSON的长度,jquery,ajax,Jquery,Ajax,您好,有人能解释为什么ajax总是返回JSON的长度吗 $(document).ready(function () { $("#addElem").click(function (e) { e.preventDefault(); var val1 = $('#addname').val(); var val2 = $ ('#addprice').val(); $.ajax({ type: 'POST',

您好,有人能解释为什么ajax总是返回JSON的长度吗

$(document).ready(function () {
   $("#addElem").click(function (e) {
       e.preventDefault();
       var val1 = $('#addname').val();
       var val2 = $ ('#addprice').val();
       $.ajax({
           type: 'POST',
           url: 'server.php',
           dataType:"json",
           data: {name: val1, action:'set', price: val2},
           success: function( data ){
                var ident = $('#text').append( data );

           }
       }).done(function(data) {
            alert(data)
       });

   });
});
编辑: 这是一个server.php

已解决 这不是我的错,这是一笔Server.php交易。php总是以这种方式工作。
谢谢大家

您的PHP代码正在返回
项的长度
数组。这就是你从数据中得到的。这不是JSON的长度,而是服务器端代码返回的长度(数字)

// rest of the code
if($_POST['action'] == 'set') {
    if(isset($_POST['name']) && isset($_POST['price'])){
        $item = [
            'name' => $_POST['name'],
            'price' => $_POST['price']
        ];
        $items[] = $item;
        file_put_contents('items.json', json_encode($items));
        $return = json_encode(count($items)-1); //<<<<<<<<<<<<< Change here if you want
    } else {
        $return = json_encode(['error' => 'Wrong item details']);
    }
}
// rest of the code
//代码的其余部分
如果($_POST['action']=='set'){
如果(isset($_POST['name'])和&isset($_POST['price'])){
$item=[
'name'=>$\u POST['name'],
'price'=>$\u POST['price']
];
$items[]=$item;
文件内容('items.json',json编码($items));

$return=json_encode(count($items)-1);//您的PHP代码正在返回
items
array的长度。这是您在数据中得到的。不是json的长度,而是服务器端代码返回的长度(数字)

// rest of the code
if($_POST['action'] == 'set') {
    if(isset($_POST['name']) && isset($_POST['price'])){
        $item = [
            'name' => $_POST['name'],
            'price' => $_POST['price']
        ];
        $items[] = $item;
        file_put_contents('items.json', json_encode($items));
        $return = json_encode(count($items)-1); //<<<<<<<<<<<<< Change here if you want
    } else {
        $return = json_encode(['error' => 'Wrong item details']);
    }
}
// rest of the code
//代码的其余部分
如果($_POST['action']=='set'){
如果(isset($_POST['name'])和&isset($_POST['price'])){
$item=[
'name'=>$\u POST['name'],
'price'=>$\u POST['price']
];
$items[]=$item;
文件内容('items.json',json编码($items));

$return=json_encode(count($items)-1);//
$。append
函数接收(
htmlString或元素、文本或数组或jQuery
)。
如何使用
json
object
$。append
?函数
success
中的
数据
对象是javascript对象。我认为问题隐藏在这里。

$。append
函数接收(
htmlString或元素、文本、数组或jQuery
)。
如何使用
json
object
$。append
?函数
success
中的
data
对象是javascript对象。我认为问题隐藏在这里。

这个问题不是很清楚……你是说在$.ajax成功回调中返回的数据只包含json字符串的长度吗?在这种情况下,我t将检查server.php中需要检查的代码。在浏览器中发布处理返回回调F12的php脚本代码,以打开开发人员工具。应该有一个“网络”窗格(或类似窗格)您可以在那里检查发送的确切数据。我几乎更担心的是,如果AJAX接收到某些内容,那是因为这是首先发送的内容。这个问题不是很清楚……您是说在$.AJAX成功回调中返回的数据只包含JSON字符串的长度吗?在这种情况下,它将包含server.php th中的代码at需要检查。在浏览器中发布处理返回回调F12的php脚本代码,以打开开发人员工具。应该有一个“网络”窗格(或类似的窗格),您可以在其中检查发送的确切数据。我几乎更担心的是,如果AJAX接收到某些内容,这是因为首先发送的就是这些内容。