美文网首页我爱编程
jQuery.post()发送JSON数组的方法

jQuery.post()发送JSON数组的方法

作者: microkof | 来源:发表于2018-04-11 15:22 被阅读276次

    简单情况下,通常我们用$.post()发送的是一串由键值对序列化的字符串,或者发送的是一个JS对象(或一个JSON),而今天,我遇到一个情况是需要发送JSON数组,测试了一下,方法如下:

    JS端

    // 组装一个JSON数组
    var postModel = [];
    postModel.push({a:1,b:2});
    postModel.push({c:3,d:4});
    
    // 发送的是一个对象,对象的值先转换为字符串
    $.post('url...', {works: JSON.stringify(postModel)}, function (data) {
            alert('ok');
    });
    

    按照上面方法,PHP端会收到一个works,值是一长串字符串。

    PHP端(用ThinkPHP框架前提下)

    $works = json_decode(htmlspecialchars_decode($this->_post('works')), true);
    

    要点1:用htmlspecialchars_decode()。因为works字符串内的双引号都是实体,也就是",而json_decode()并不会自动反转义,所以用htmlspecialchars_decode()反转义。

    要点2:json_decode()的参数true不要忘记。

    相关文章

      网友评论

        本文标题:jQuery.post()发送JSON数组的方法

        本文链接:https://www.haomeiwen.com/subject/qwxzhftx.html