jQuery.get函数在Github Pages中不起作用

我正在尝试构建一个项目页面设置,使用Github API在Github中自动填充项目详细信息。 我已经在gh-pages分支中放置了我的HTML和JavaScript文件。 但是jQuery.get()并没有给我任何数据。 我检查了Firebug并发现请求已发送且响应代码为200 OK,但未显示收到的数据。 API没有问题,命令行curl -i url响应符合预期。

我的HTML是:

 

Project

Contributors

我的Javascript代码是:

 $(document).ready(function(){ var project = $('#project').attr('name'); var baseurl = "https://api.github.com/"; var url = baseurl + "repos/thamizha/"; url += project; url += "/collaborators"; $.get(url, function(data){ $('#collab').text(JSON.stringify(data)); }); }); 

更新:我也试过这个。 甚至没有警报。

 $.getJSON(url, function(data){ $('#collab').html(JSON.stringify(data)); alert('Success'); }); 

我没有尝试过,但您应该可以使用$.getJSON()来执行跨域请求: http : $.getJSON() (签出JSONP部分)

如果URL包含字符串“callback =?” (或类似的,由服务器端API定义),请求被视为JSONP。

–UPDATE–

我运行了测试,如果您尝试在不强制使用JSONP的情况下进行跨域请求,那么您将收到200 OK状态消息但没有实际响应。 我还发现这个代码用于在JQuery中为JSONP设置AJAX请求:

 $.ajax({ dataType: 'jsonp', data: 'id=10', jsonp: 'jsonp_callback', url: 'http://myotherserver.com/getdata', success: function () { // do stuff } }); 

这是来自: http : //remysharp.com/2007/10/08/what-is-jsonp/

可能你没有添加JSON api! 所以JSON.stringify不起作用!

只需在JS代码之前添加它:

 /* http://www.JSON.org/json2.js 2011-02-23 Public Domain. NO WARRANTY EXPRESSED OR IMPLIED. USE AT YOUR OWN RISK. See http://www.JSON.org/js.html */ var JSON;if(!JSON){JSON={}}(function(){function f(n){return n<10?"0"+n:n}if(typeof Date.prototype.toJSON!=="function"){Date.prototype.toJSON=function(key){return isFinite(this.valueOf())?this.getUTCFullYear()+"-"+f(this.getUTCMonth()+1)+"-"+f(this.getUTCDate())+"T"+f(this.getUTCHours())+":"+f(this.getUTCMinutes())+":"+f(this.getUTCSeconds())+"Z":null};String.prototype.toJSON=Number.prototype.toJSON=Boolean.prototype.toJSON=function(key){return this.valueOf()}}var cx=/[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,escapable=/[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,gap,indent,meta={"\b":"\\b","\t":"\\t","\n":"\\n","\f":"\\f","\r":"\\r",'"':'\\"',"\\":"\\\\"},rep;function quote(string){escapable.lastIndex=0;return escapable.test(string)?'"'+string.replace(escapable,function(a){var c=meta[a];return typeof c==="string"?c:"\\u"+("0000"+a.charCodeAt(0).toString(16)).slice(-4)})+'"':'"'+string+'"'}function str(key,holder){var i,k,v,length,mind=gap,partial,value=holder[key];if(value&&typeof value==="object"&&typeof value.toJSON==="function"){value=value.toJSON(key)}if(typeof rep==="function"){value=rep.call(holder,key,value)}switch(typeof value){case"string":return quote(value);case"number":return isFinite(value)?String(value):"null";case"boolean":case"null":return String(value);case"object":if(!value){return"null"}gap+=indent;partial=[];if(Object.prototype.toString.apply(value)==="[object Array]"){length=value.length;for(i=0;i 

如果JSON不是问题,请尝试修复数据类型,如下所示:

 $.get(url, function(data){ $('#collab').text(JSON.stringify(data)); },'json');