繁体   English   中英

使用php从ajax检索发布的数据

[英]Retrieving posted data from ajax using php

我在从ajax调用中检索发布的数据时遇到问题,不确定是什么问题。 下面脚本的控制台输出显示了ajax调用之前所期望的一切,但是该数据在连接器中不可用

   function updateOptions(data){

        console.log(data);
        console.log(data.id);
        console.log(data.action);

        var data = {id: data.id, action : data.action};

        console.log(data);

        $.ajax({

            type: 'POST',
            url: 'ajax.connector.php?action=updateOptions',
            data: JSON.stringify(data),
            cache: false,
            dataType  : "json",

            success: function(data, status) {

                if(data.status == 'success'){

                console.log('success');
                console.log(data);

                }else if(data.status == 'error'){
                    console.log('selects not updated');
                }

            },

            error: function(data){
                console.log('an error has occurred');
            },

        });

    }

因此,前4个console.log条目正确显示了数据,成功情况下的第一个console.log正确显示了。 第二个显示:

Object {status: "success", msg: "Category added successfully", id: null, action: null, post: Array[0]}

连接器[更像导演]

   case 'updateOptions':
        error_log('Running updateOptions function ' . print_r($_POST, TRUE), 0);
        $output = $sbb->updateOptions($_POST);
        break;

记录此:

Running updateOptions function Array\n(\n)\n,

如果我尝试在日志中回显$ _POST ['action']或$ _POST ['data']或其他内容,则会得到未定义的索引。

我强迫ajax调用在php case函数正在调用的类中返回成功:

public function updateOptions($data){

        $output = array(
            'status' => 'success',
            'msg' => 'Category added successfully',
            'id' => $data['id'],
            'action' => $data['action'],
            'post' => $data,
        );

        return $output;

}

因此,ajax调用本身确实有效,只是未传递的数据。

不知何故,我没有从ajax发布中获取[或正确检索]数据。

这里有什么问题?

您正在发布JSON,$ _ POST中填充了键=值对,请勿将JSON与application/x-www-form-urlencodedmultipart/form-data (这是php用于填充$_POST
要使用jQuery.ajax发送application/x-www-form-urlencoded数据,请传递一个对象,并将该对象作为数据参数

data: data, // removed JSON.stringify

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM