Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.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
Jquery 在$.ajax请求中传递数据将返回一个空数组。怎么了?_Jquery_Ajax - Fatal编程技术网

Jquery 在$.ajax请求中传递数据将返回一个空数组。怎么了?

Jquery 在$.ajax请求中传递数据将返回一个空数组。怎么了?,jquery,ajax,Jquery,Ajax,我正在努力解决这个问题 我试图使用$.ajax将元素数据传递给我的php文件,它总是返回空的 这是我的密码: strJson = '{' $.each(this_side.data(), function(i, v) { strJson += i + ":'" + v + "',"; }); strJson += term_id + ":'" + term_id + "',"; strJson += new_page_num + ":'"

我正在努力解决这个问题

我试图使用$.ajax将元素数据传递给我的php文件,它总是返回空的

这是我的密码:

    strJson = '{'
    $.each(this_side.data(), function(i, v) {
        strJson += i + ":'" + v + "',";
    });
    strJson += term_id + ":'" + term_id + "',";
    strJson += new_page_num + ":'" + new_page_num + "'";
    strJson += '}';

    alert(strJson); // this works

    $.ajax({
        url: 'my url here',
        type: 'post',
        data: strJson,
        success: function(data){
            alert(data);
        }
    });
$\u POST的Outpot是一个空数组。它不起作用了


请告诉我这里缺少什么?

由于lordVlad的评论,更新了答案:

strJson = '{'
    $.each(this_side.data(), function(i, v) {
        strJson += i + ":'" + v + "',";
    });
    strJson += "'"+ i + "':'" + v + "',";
    strJson += new_page_num + ":'" + new_page_num + "'";
    strJson += '}';
尝试将
数据类型
和“contentType”添加到代码中

$.ajax({
        url: 'my url here',
        type: 'post',
        data : JSON.parse(strJson),
        dataType: 'json',
        success: function(data){
            alert(data);
        },
        contentType: "application/json; charset=utf-8"
    });

此外,您可能需要查看官方文档:

由于lordVlad的评论,更新了答案:

strJson = '{'
    $.each(this_side.data(), function(i, v) {
        strJson += i + ":'" + v + "',";
    });
    strJson += "'"+ i + "':'" + v + "',";
    strJson += new_page_num + ":'" + new_page_num + "'";
    strJson += '}';
尝试将
数据类型
和“contentType”添加到代码中

$.ajax({
        url: 'my url here',
        type: 'post',
        data : JSON.parse(strJson),
        dataType: 'json',
        success: function(data){
            alert(data);
        },
        contentType: "application/json; charset=utf-8"
    });
此外,您可能需要查看官方文档:

尝试以下操作:

$.ajax({
    url: 'my url here',
    type: 'POST',
    dataType: 'json',
    contentType: "application/json; charset=utf-8",
    data: { param: strJson },
    success: function(data){
        alert(data);
    }
});
试试这个:

$.ajax({
    url: 'my url here',
    type: 'POST',
    dataType: 'json',
    contentType: "application/json; charset=utf-8",
    data: { param: strJson },
    success: function(data){
        alert(data);
    }
});
尝试添加
数据类型:“json”

$.ajax({
    url: 'my url here',
    type: 'post',
    data: $.parseJSON(strJson),
    dataType: "json",
    success: function(data){
        alert(data);
    }
});
并在发送前使用
$.parseJSON()
解析strJson。

尝试添加
数据类型:“json”

$.ajax({
    url: 'my url here',
    type: 'post',
    data: $.parseJSON(strJson),
    dataType: "json",
    success: function(data){
        alert(data);
    }
});

并在发送之前使用
$.parseJSON()
解析
strJson

不要为
dataType
contentType
操心,jQuery应该自己处理。
this\u side.data()
返回什么?如果它是一个数组,则表示
$中的
i
变量。每个
循环都是一个数字,JSON的格式完全错误。试一试

$.each(this_side.data(), function(i, v) {
    strJson += "'" + i + "':'" + v + "',";
});
然后还应该发布一个JSON对象,而不是JSON字符串:

 $.ajax({
    data : JSON.parse( strJson ),
    ...
 })
this_side.data()
返回一个对象并且键具有像“-”这样的“特殊”字符时,这一点也要考虑在内

如果
this_side.data()
返回一个对象,则以下方法更简单:

$.ajax({
    url: 'my url here',
    type: 'post',
    data: $.extend( 
            this_side.data(),
            {'term_id': term_id, 'new_page_num' : new_page_num }
          ),
    success: function(data){
        alert(data);
    }
});

不要为
数据类型
内容类型
操心,jQuery应该自己解决这个问题。
this\u side.data()
返回什么?如果它是一个数组,则表示
$中的
i
变量。每个
循环都是一个数字,JSON的格式完全错误。试一试

$.each(this_side.data(), function(i, v) {
    strJson += "'" + i + "':'" + v + "',";
});
然后还应该发布一个JSON对象,而不是JSON字符串:

 $.ajax({
    data : JSON.parse( strJson ),
    ...
 })
this_side.data()
返回一个对象并且键具有像“-”这样的“特殊”字符时,这一点也要考虑在内

如果
this_side.data()
返回一个对象,则以下方法更简单:

$.ajax({
    url: 'my url here',
    type: 'post',
    data: $.extend( 
            this_side.data(),
            {'term_id': term_id, 'new_page_num' : new_page_num }
          ),
    success: function(data){
        alert(data);
    }
});

在数据参数中,您发送的是json格式的字符串

尝试以以下格式发送数据

strJson='name=Will&address=florida';

让我知道这是否有效

在数据参数中,您正在发送json格式的字符串

尝试以以下格式发送数据

strJson='name=Will&address=florida';

让我知道这是否有效

另外(不是问题),应该
完成
,而不是
成功
。在控制台日志中发布错误您也应该转义
i
strJson+=“'”“+i+”:“+v+”,”和数据必须是JSON对象,而不是JSON字符串:
数据:JSON.parse(strJson),
同样(不是问题),它应该
完成
,而不是
成功
。在控制台日志中发布错误您也应该转义
i
strJson+=“'”“+i+”:“+v+”,”和数据必须是JSON对象,而不是JSON字符串:
数据:JSON.parse(strJson),