一个线上的.json文件链接,能否用js读取到内容?
例如http://119.23.29.40/test.json
类似这样的链接,可以直接用js读取出内容吗?
fileReader好像只能读取blob对象或者file对象的内容,那这种链接该怎么读取呢
----------更新-----------
用jquery的$.ajax()可以拿到数据,不过需要nginx上配置一些可允许跨域的参数(因为存在跨域的问题)
一个线上的.json文件链接,能否用js读取到内容?
例如http://119.23.29.40/test.json
类似这样的链接,可以直接用js读取出内容吗?
fileReader好像只能读取blob对象或者file对象的内容,那这种链接该怎么读取呢
----------更新-----------
用jquery的$.ajax()可以拿到数据,不过需要nginx上配置一些可允许跨域的参数(因为存在跨域的问题)
同源的这样就能读
$.get("http://119.23.29.40/test.json",{},function(res){
console.info(res);
});
13 回答12.9k 阅读
7 回答2.1k 阅读
5 回答1.4k 阅读
3 回答1.3k 阅读✓ 已解决
5 回答1.5k 阅读✓ 已解决
2 回答1.3k 阅读✓ 已解决
6 回答1.2k 阅读✓ 已解决
解决方案如下:
1 同源可直接读取
如果http://119.23.29.40/test.json 和js文件处于相同域,可直接读取
2 不同源
(1) 是否能控制http://119.23.29.40/test.json 的返回头部? 浏览器本身有对跨域做一些限制,如果你需要跨域调用,添加如下http头部:
(2)不能控制,则需要自己添加代理服务器作为中转(题主所说的nginx也可以作为代理中转),添加跨域头部.
有作者已经做好的:https://www.npmjs.com/package...
总结
遇到跨域问题,涉及浏览器的同源政策限制,同源直接读取,跨域需要添加跨域头部. 不能控制,则可以添加中转服务器处理.