Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/422.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将$.post转换为$.ajax_Javascript_Jquery_Ajax - Fatal编程技术网

Javascript 将$.post转换为$.ajax

Javascript 将$.post转换为$.ajax,javascript,jquery,ajax,Javascript,Jquery,Ajax,我有一份声明 $.post("panel.php", 'data=[{"action":"UserInfo"}]', function (userInfo){ //processing }); 我需要将其转换为$.ajax,因此 $.ajax({ type: "POST", url: "panel.php", data: { data: [{"action":"UserInfo"}]},

我有一份声明

$.post("panel.php", 'data=[{"action":"UserInfo"}]', function (userInfo){
    //processing
});
我需要将其转换为$.ajax,因此

 $.ajax({
                type: "POST",
                url: "panel.php",
                data:  { data: [{"action":"UserInfo"}]},
                contentType: "application/json; charset=utf-8",
                dataType: "json",
                success: function(userInfo) {
                    //processing
                }
});
但是没有发送post变量。这不是正确的方法吗?

试着这样做

$.ajax({
                type: "POST",
                url: "panel.php",
                data:  {"action":"UserInfo"},
                success: function(userInfo) {

                }
});

数据
中删除
数据
,并将其保存在变量中,在发送前进行字符串化,如下所示

var data={"action":"UserInfo"};
$.ajax({
                type: "POST",
                url: "panel.php",
                data: JSON.stringify(data),
                contentType: "application/json; charset=utf-8",
                dataType: "json",
                success: function(userInfo) {
                    //processing
                }
});

您的
数据
属性未写入正确的JSON:

data:  { "data": [{"action":"UserInfo"}]},

在JSON对象中的项目周围需要引号。您可以使用检查JSON对象是否有效。

您可以尝试以下方法:

$.ajax({
                type: "POST",
                url: "panel.php",
                data:  {"action":"UserInfo"},
                success: function(userInfo) {
                    //processing
                }
});
我需要一点零钱。有一种预定义的格式可以在ajax中发送数据

  • 数据:{状态:状态,名称:名称}
  • 数据:“status=“+status+”&name=“+name”
  • 按照任何一种方法进行操作。

    试试这个

    $.ajax({
                        type: "POST",
                        url: "panel.php",
                        data: "action="+"UserInfo",
                        success: function(userInfo) {
                            //processing
                        }
        });
    

    删除contentType和dataTypeattributes@LalitSharma为什么要这样做?当你传递这样的值时。不需要定义数据类型就可以知道…@LalitSharma
    $。post是$.ajax[…]
    的缩写,这里有更多信息:(可能是语义上的挑剔,但我认为重要的是要注意,$.post()不做纯http post,它将包括到另一个页面的导航)对于
    .ajax
    @DarkAshelin,没有必要对JSON对象进行字符串化。我从来没有说过这是必要的。我也只是想试一下。谁知道用户将以什么方式在服务器端接收它???您应该删除
    数据类型
    属性,因为它没有在原始的
    $中设置。post
    也没有设置,因此它只会导致意外的结果。谢谢您的提醒。:)
    $.ajax({
                        type: "POST",
                        url: "panel.php",
                        data: "action="+"UserInfo",
                        success: function(userInfo) {
                            //processing
                        }
        });