javascript - 跨域请求 - javascript

标签 javascript jquery html cross-domain jquery-csv

背景:

我正在创建一个网络应用程序来下载和显示房价。数据来源:http://www.fhfa.gov/DataTools/Downloads/Documents/HPI/HPI_AT_metro.csv

我的计划:

使用 javascript 直接从链接下载数据,然后将数据转换为 javascript 对象(可能使用 jQuery-csv)。之后,我将使用 DataTables 或其他 javascript 库来显示数据。

我陷入困境的地方:

经过一些研究,这样做似乎违反了“同源策略”。据我了解,在 javascript 中从外部源下载数据是 Not Acceptable 。

问题:

  1. 我说得对吗?是否从外部数据源下载 .csv 违反“同源政策”?
    • 如果我的说法不正确,从上面的链接下载 .csv 并将其转换为 JavaScript 对象(最好使用 jQuery)所需的代码片段将非常有帮助。
  2. 如果我是正确的,为什么下载外部 .csv 违反了此政策,而采购外部图像用于网站则不违反此政策?例如

<img src="http://www.freeflashgamearcade.com/games/images/tic-tac-toe.jpg">

注释:

我希望这样做,这样我就可以完全避免使用服务器端语言。如果这不起作用,我计划使用 python/flask 设置应用程序,该应用程序仅用于下载数据。

最佳答案

您想要实现的项目存在一些问题:

  1. 由于 CORS 政策,您无法使用 AJAX 请求下载第三方文件或获取数据。有时,网站允许共享其资源,在这种情况下,可以通过 AJAX 获取第三方数据。 (https://developer.mozilla.org/en-US/docs/Web/HTTP/Access_control_CORS)

  2. 即使您能够下载 CSV 文件,您也必须解析它才能显示数据,并且由于您使用的是 JavaScript,您将把它下载到客户端计算机上,然后您需要访问它这是不可能的。 (您无法从 Javascript 访问系统文件 [更多详细信息可在此处找到: Local file access with javascript )

关于javascript - 跨域请求 - javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37377899/

相关文章:

javascript - 相对于自身大小的偏移(使用变换)svg 元素

javascript - 根据输入 slider 递归显示/隐藏 li 元素

jquery - jquery.post 和 jquery.get 之间的区别?

javascript - 使用 jQuery $.get() 的主干路由器 promise 确定用户未按预期工作的登录状态

javascript - 从 JSON 对象中提取可用链接

html - 使用html修改背景图片大小

javascript - 捕获 JavaScript 解构中的嵌套级别

javascript - 为每个 html 页面使用单独的 javascript 文件?

jQuery 单击停止传播

html - 表格使 <td> 响应