有使用 d3.js 的吗,请教 2 个问题

2017-04-17 21:13:59 +08:00
 leedstyh
  1. 用 d3.csv()请求文件时,跨域的时候,如何带上 cookie ?

  2. IE/Edge 下为什么我请求的 csv 文件有问题, float 的都是 NaN , string 的都是乱码, Chrome 下正常

1502 次点击
所在节点    问与答
4 条回复
msg7086
2017-04-18 01:52:00 +08:00
跨域带 Cookie 本身不是会导致跨站攻击吗?
C18H27NO3
2017-04-18 04:38:00 +08:00
1. 先用 d3-request 做个 http request , request 里 header 加上需要的 authentication ,再对返回值做 d3.csv parse
d3.request(url)
.header("Authenticate",token)
.mimeType("text/csv")
.response(function(xhr){return d3.csvParse(xhr.responseText, row);})
[.get(callback)]

2. 你用的是 3.X 还是 4.0 的 d3 ? 如果 chrome 里正常的话应该是 request 的问题
leedstyh
2017-04-18 06:41:00 +08:00
@msg7086 在 server 端设置 cors 相关的 header 就没事了吧。


@C18H27NO3

1 的问题,我是想加上 cookie ,不是加个 auth token 的 header ,不过我现在用 axios 重新写了一下,反正项目中其他 ajax 相关的都是用 axios 写的,这样正好不用 d3-request 了,省了个依赖。

2 的问题,我在 server 端没有添加`text/csv`的`Content_type`,添加上之后, IE/Edge 下正常了,不添加是不规范吧,反正 chrome 没问题。
leedstyh
2017-04-18 06:42:26 +08:00
Content-Type

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/355478

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX