吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1843|回复: 12
收起左侧

[已解决] JS POST问题,太诡异了,脑阔疼。

  [复制链接]
cqwcns 发表于 2020-1-6 09:44
本帖最后由 cqwcns 于 2020-1-6 12:27 编辑

我的DEMO是这样的:
[JavaScript] 纯文本查看 复制代码
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>无标题文档</title>
<script src="assets/js/core/jquery.3.2.1.min.js"></script>
</head>

<body>
<script type="application/javascript">
        
        function funGetChartDefaultStyle() {
                                return {
                                        type: 'pie',
                                        toolbox: {
                                                show: false,
                                                feature: {
                                                        dataView: {
                                                                show: true,
                                                                readOnly: true
                                                        },
                                                        saveAsImage: {
                                                                show: true
                                                        }
                                                }
                                        },
                                        legend: {},
                                        series: [{
                                                name: '标题',
                                                type: 'pie',
                                                radius: ['0%', '70%'],
                                                avoidLabelOverlap: false,
                                                label: {},
                                                labelLine: {}
                                        }],
                                        dataset: {
                                                source: ''
                                        }
                                };
                        };        
        
        let arrTemp=funGetChartDefaultStyle();
        
        arrTemp.series.radius=['20%', '90%'];
        
        console.log(arrTemp);
        
        $.post('/php/changeChartPage.php', {
                vVal: JSON.stringify(arrTemp),
        });
        
</script>
</body>
</html>


先生产一个对象,修改他,在控制台上输出,可见修改成功:
1.png
【此处剪刀手】
然后我POST数据,诡异的事情就发生了:
2.png
【此处黑人问号脸】


为什么会这样?!?!?请指教。

免费评分

参与人数 1吾爱币 +1 热心值 +1 收起 理由
秋雨凉心 + 1 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

kof21411 发表于 2020-1-6 09:53
应该是JS POST异步执行的问题
堕落ぁ狼 发表于 2020-1-6 09:59
你标记的两个数据不是一个维度的

series的对象类型是一个数组

你的赋值语句却是操作的series整个对象  而不是其中的某个元素

后面序列化的时候就有问题了  具体不是很清楚原理

按照你的需求来看你应该这么写

[JavaScript] 纯文本查看 复制代码
arrTemp.series[0].radius=['20%', '90%'];
_知鱼之乐 发表于 2020-1-6 10:00
zyl5664 发表于 2020-1-6 10:05
ajax异步调用,var的时候不会等你返回的。设置为同步试试吧。
 楼主| cqwcns 发表于 2020-1-6 10:34
更诡异!更诡异的事,我忘记说了。

如果修改参数时,同时加一个arrTemp.type='line',修改type属性为'line',竟然POST时是'line',而不是原来的Pie。

你们试试,帮帮我解决这个问题,谢谢。
1032740078 发表于 2020-1-6 10:45
cqwcns 发表于 2020-1-6 10:34
更诡异!更诡异的事,我忘记说了。

如果修改参数时,同时加一个arrTemp.type='line',修改type属性为'li ...

js很多东西都是异步的,你要先搞清楚js的异步就不会觉得诡异了
15774211127 发表于 2020-1-6 10:46
本帖最后由 15774211127 于 2020-1-6 10:50 编辑
cqwcns 发表于 2020-1-6 10:34
更诡异!更诡异的事,我忘记说了。

如果修改参数时,同时加一个arrTemp.type='line',修改type属性为'li ...

诡异个鸡儿,
你执行
arrTemp.type='line'
post时type当然是line了,
你前面的问题是series是数组,而你使用
arrTemp.series.radius=['20%', '90%'];
去修改,当然不对了,
你这相当于给series添加了个属性,对于json,来说series是个数组,里面的属性当然无法表示出来啊,
而你看到的修改了是因为js中时是将它 表现为对象,不信你点开console.log()时看到的series下面的0属性看看是改每改
正确写法是
arrTemp.series[0].radius=['20%', '90%'];


image.png

免费评分

参与人数 1吾爱币 +1 热心值 +1 收起 理由
cqwcns + 1 + 1 谢谢@Thanks!

查看全部评分

goldli 发表于 2020-1-6 11:04
15774211127 发表于 2020-1-6 10:46
诡异个鸡儿,
你执行
arrTemp.type='line'

终于有个明白人了。
wei125483 发表于 2020-1-6 11:11
本帖最后由 wei125483 于 2020-1-6 11:19 编辑

[JavaScript] 纯文本查看 复制代码
    arrTemp.series=[{
            name: '标题',
            type: 'pie',
            radius: ['20%', '90%'],
            avoidLabelOverlap: false,
            label: {},
            labelLine: {}
        }];
     var params = JSON.stringify(arrTemp)
    console.log(params);
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-26 22:42

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表