2012-12-20 83 views
0

我想訪問使用jQuery的gamebanana api。我的代碼如下所示:Gamebanana訪問API

var url = 'http://www.gamebanana.com/api?request=Member.1382.["user_title"]'; 
$.get(url, function(data) { console.log(data); 
}); 

直接訪問該URL會顯示一條消息,說明它的格式不正確。 問題可能與URL或大括號中的引號有關嗎? 有人可以給我一個例子如何正確地做到這一點?

+2

什麼是悲慘的API設計。無論如何,對我來說工作得很好,你只需要使用正確的URL編碼:http://gamebanana.com/api?request=Member.1382.[%22user_title%22]但是,你不能做跨域阿賈克斯除非API支持JSONP或CORS。 –

+0

你能告訴我如何添加網址編碼嗎? – shash7

+0

對查詢參數值使用['encodeURIComponent()'](https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/encodeURIComponent),或將查詢參數單獨傳遞給'$。 get()',如'$ .get('http://www.gamebanana.com/api',{request:'Member.1382。[「user_title」]'},function ...)' –

回答

0

我(RazerKat)在JavaScript中寫了這個包裝。它很好地工作,但有時你可能需要額外的東西來使它工作。尤其在GameBanana中,這是一個好的開始。它也是跨瀏覽器兼容的,它可以在Internet Explorer和Mozilla Firefox中使用。在這種情況下,GameBanana似乎使用GET請求從服務器端獲取信息,因此您只需將POST更改爲GET並刪除發送變量,並將刪除的變量放入打開的請求中,而不是使其獲取數據正確。另外請注意,它只能在其網站上專門運行,您需要調整代碼以達到所需的效果。

var DataObject;function AJAX_JSON_Request(p,d,u){var Request;if(window.XMLHttpRequest){Request=new XMLHttpRequest();}else{Request=new ActiveXObject("Microsoft.XMLHTTP");} 
    Request.onreadystatechange=function(){if(Request.readyState==4&&Request.status==200){DataObject=JSON.parse(Request.responseText),DataObject.XML=Request,DataObject.JSON=Request.responseText;}} 
    Request.open("POST",u,true); 
    Request.setRequestHeader("Content-type","application/x-www-form-urlencoded"); 
    Request.send(p+"="+d);}