微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

ajax 传json数组丢失

在Web开发中,AJAX技术被广泛应用于通过异步请求更新部分网页的场景,而其中最常使用的数据传输格式就是JSON。然而,有时候在使用AJAX传递JSON数组时,会出现丢失的情况。

$.ajax({
    url: 'example.PHP',type: 'post',data: {
        arr: JSON.stringify([1,2,3])
    },success: function(data){
        console.log(data);
    }
});

ajax 传json数组丢失

上述代码中,我们通过AJAX向服务器发送了一个JSON数组[1,3]。然而,有时候当我们在服务端使用$_POST['arr']获取到这个数据时,却会发现它变成了一个空字符串或Undefined。

这是由于一些服务器会对POST请求进行处理,将POST的数据中的方括号[]转义成urlencode格式中的%5B和%5D。所以,当我们传递JSON数组时,数据会变成这个样子:

arr%5B%5D=1&arr%5B%5D=2&arr%5B%5D=3

这样在服务端获取到的就不再是一个JSON数组了,而是一个连续字符串。解决这个问题的方法很简单,只需要在ajax请求中设置contentType参数即可:

$.ajax({
    url: 'example.PHP',contentType: 'application/json',data: JSON.stringify({arr: [1,3]}),success: function(data){
        console.log(data);
    }
});

通过设置contentType为application/json,服务器就会正确解析JSON格式的数据。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐