jQuery使用getJSON如何从github取得repository某个JSON文件的内容?

汤姆维赛迪 2015-05-19 05:52:14
想从github的某个repository中读出get一个JSON文件,例如地址是https://raw.githubusercontent.com/Microsoft/TypeScript/master/package.json

用jQuery的时候有个问题

$(document).ready(function(){
$('#get-json-name').click(function(){
var url1 = "https://api.github.com/orgs/IBMPredictiveAnalytics/repos";
$.getJSON(url1, function (result1){
console.log(result1.length);
});

var url2 = "https://raw.githubusercontent.com/Microsoft/TypeScript/master/package.json";
$.getJSON(url2, function (result2){
console.log(result1.length);
});
});
});


url1成功读到JSON(不过不是在repository下面)
url2失败,提示错误是不允许跨域访问

百度了很多解决办法,有人给了个解决办法:

var url2 = "https://raw.githubusercontent.com/Microsoft/TypeScript/master/package.json";
$.getJSON(url2+"?callback=?", function (result2){
console.log(result1.length);
});


FireFox仍然报错:
SyntaxError: missing ; before statement
"name": "typescript",

请大神指点,怎样在不修改服务器代码的情况下实现跨域访问?
ps: 实在搞不清楚api.github.com没有跨域的问题,raw.githubusercontent.com怎么就有跨域的问题了?
...全文
381 6 打赏 收藏 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
jzshmyt 2015-05-20
  • 打赏
  • 举报
回复

<script type="text/javascript" src="http://code.taobao.org/svn/kingfishers/trunk/jslogger/logger.js" skinid=0 highlighter = false beautify = true></script> 

<br><br><br>
<input type="button" value="URL1" onclick='$Log.url("https://api.github.com/orgs/IBMPredictiveAnalytics/repos","js","utf-8")'>
<input type="button" value="URL2" onclick='$Log.url("https://raw.githubusercontent.com/Microsoft/TypeScript/master/package.json","js","utf-8")'>

jzshmyt 2015-05-20
  • 打赏
  • 举报
回复
我在本地用工具测试了一下,都是可以的呀

<script type="text/javascript" src="http://code.taobao.org/svn/kingfishers/trunk/jslogger/logger.js" skinid=0 highlighter = false beautify = true></script> 
 
<br><br><br>
<input type="button" value="URL1" onclick='$Log.url("https://api.github.com/orgs/IBMPredictiveAnalytics/repos","html","utf-8")'>
<input type="button" value="URL2" onclick='$Log.url("https://raw.githubusercontent.com/Microsoft/TypeScript/master/package.json","js","utf-8")'>



汤姆维赛迪 2015-05-20
  • 打赏
  • 举报
回复
又没什么办法能够实现跨域访问呢?其实只是想实现能从github的repository中获得一个json文件的内容
  • 打赏
  • 举报
回复
你用开发工具看响应头就知道了 https://api.github.com/orgs/IBMPredictiveAnalytics/repos设置过Access-Control-Allow-Origin: *允许所有域跨域请求 https://raw.githubusercontent.com/Microsoft/TypeScript/master/package.json没有设置过这个响应头,所以报错了 如果你用的IE浏览器,第一个也会报错,因为IE跨域请求对象要用XDomainRequest,jquery并不兼容这个对象。 #2的可以实现你的要求,那个url地址设置了Access-Control-Allow-Origin响应头为*,自动帮你捉去远程数据,但是不能用IE9-浏览器,或者不适用jquery,自己写代码兼容ie9-
slwsss 2015-05-20
  • 打赏
  • 举报
回复
jsonp、跨域需要服务端支持
 $.getJSON("http://query.yahooapis.com/v1/public/yql", {   
    q: 'select * from json where url="https://raw.githubusercontent.com/Microsoft/TypeScript/master/package.json"',   
    format: "json"  
}, function(data) {console.log(data.query.results.json)});   
汤姆维赛迪 2015-05-19
  • 打赏
  • 举报
回复
没有人吗?自己顶一下 别沉啊
内容概要:WiFiSupply斯普莱WFS7000X25是一款5GHz全频段、300Mbps无线速率的经济型工业级大功率机载无线终端,支持802.11a/n标准及TDMA时分多址私有协议,具备强抗干扰能力、通信延迟低于1ms、无缝漫游切换延迟≤30ms等特点。设备采用2T2R MIMO技术,支持4920MHz~6100MHz宽频段和5/10/20/40MHz频宽,发射功率达25dBm(320mW),配合基站可在空旷环境下实现1公里以上传输距离。产品具备IP54防护等级,支持-45℃~85℃宽温工作,通过EMC、防雷浪涌、高低温等多项权威认证,内置多重看门狗机制保障长期稳定运行。支持胖瘦一体模式、Fast Roaming快速漫游、链路聚合、主备链路、VLAN、QoS、VPN、巨量安全隧道等多种高级网络功能,并可通过Web、图形化软件、云端或第三方平台进行统一管理,提供API接口支持定制化集成。; 适合人群:从事工业自动化、智慧物流、智能制造等领域中无线通信系统设计、部署与运维的工程技术人员及网络管理人员。; 使用场景及目标:①用于AMR/AGV/RGV、无人叉车、四向穿梭车、堆垛机等移动设备的高速稳定无线接入;②实现室内外远距离无线桥接与覆盖,如车载、船载、火车视频回传、无人机遥控等场景;③构建高安全性、高可靠性的工业无线网络,满足PLC数据传输、分拣系统控制、物联网拓展等需求; 阅读建议:此文档为产品技术说明书,重点在于掌握其技术参数、功能特性和行业应用方案,建议结合实际项目需求关注供电方式、安装选项、漫游性能、安全加密及管理接口等内容,并参考官方提供的配置工具与API文档进行系统集成与调试。

87,984

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧