V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
推荐关注
Meteor
JSLint - a JavaScript code quality tool
jsFiddle
D3.js
WebStorm
推荐书目
JavaScript 权威指南第 5 版
Closure: The Definitive Guide
gramyang

一个 console. log 的问题

  •  1
     
  •   gramyang · Jun 22, 2020 via Android · 4358 views
    This topic created in 2148 days ago, the information mentioned may be changed or developed.
    刚开始学 js,遇到一个问题:在 vue 中使用 axios 做请求,请求返回的数据用 alert 弹窗显示一下,结果数据报空且报 provisional request headers 。
    其中存在跨域的问题,但是后端进行了处理。
    折腾了半天都找不到原因,后来把 alert 改成 console. log,问题解决了。。。
    这是什么原理?
    15 replies    2020-06-23 21:03:08 +08:00
    oukichi
        1
    oukichi  
       Jun 22, 2020
    代码也不贴,HTTP 请求也不贴,你让别人怎么帮你啊兄弟。
    我只能说这个和 alert 以及 console.log 半毛钱关系也么有
    gramyang
        2
    gramyang  
    OP
       Jun 22, 2020 via Android
    @oukichi 就是一个最简单的例子,前端 axios,后端 gin 跨域,同样的代码用 alert 就报错,用 console. log 就可以。
    zarte
        3
    zarte  
       Jun 22, 2020
    我猜你打印的时候变量确实是空的,console.log 比较特别在你点开查看的时候获取的是当前值。
    gramyang
        4
    gramyang  
    OP
       Jun 22, 2020 via Android
    @zarte 对,说 console. log 有延迟性
    1iuh
        5
    1iuh  
       Jun 22, 2020
    不是有延迟, 你输出的如果是一个对象, 你看到的值是当前的值,而不是你输出的时候的值。
    crystom
        6
    crystom  
       Jun 22, 2020
    是的,打印之前 json 一下才能确定值的
    shintendo
        7
    shintendo  
       Jun 22, 2020
    点进来前就知道是打印对象的问题,console.log 也就这点问题了
    xingyue
        8
    xingyue  
       Jun 23, 2020
    调试建议:
    1. debugger;
    2. console.log(JSON.stringify(response));

    但是你的问题我尝试复现但是无法复现,按理说 alert(response)至少也显示个[object Object],因为请求是已经拿到数据并通过了 axios 的解析了的;
    贴一个 demo 地址: https://codesandbox.io/s/elegant-field-e0r0v?file=/src/App.vue
    zhw2590582
        9
    zhw2590582  
       Jun 23, 2020
    alert 打印是五年多以前才用的 debug 方法
    VDimos
        10
    VDimos  
       Jun 23, 2020 via Android
    console.log 打印的是内存地址,点击展开它从内存中读的
    zhuweiyou
        11
    zhuweiyou  
       Jun 23, 2020
    log 和 alert 之前,先 JSON.stringify 。

    不过 provisional request headers 肯定跟你这个没关系。
    wxsm
        12
    wxsm  
       Jun 23, 2020
    对于 obj 来说,console 打印的是引用,并不是快照。alert 是快照,就这点区别。
    Chenamy2017
        13
    Chenamy2017  
       Jun 23, 2020
    #5 说的对
    jmyz0455
        14
    jmyz0455  
       Jun 23, 2020
    先了解一下引用对象
    shpasspass
        15
    shpasspass  
       Jun 23, 2020
    如果是在微信里打开的网页,一开始 alert 的话,会有很大概率不弹 alert 出来
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   5220 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 57ms · UTC 01:11 · PVG 09:11 · LAX 18:11 · JFK 21:11
    ♥ Do have faith in what you're doing.