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');