2012-08-16 78 views
2

我試圖讓一個AJAX GET請求到this URL並處理JSON響應。如果你直接訪問該URL,它就可以工作。我也嘗試過運行Hurl Itit worksjQuery Ajax - 意外令牌:

我在那裏爲了不知道爲什麼我不能通過jQuery向它發出JSON/JSONP請求。

我最初試圖讓一個JSON響應,但得到:

XMLHttpRequest cannot load http://hndroidapi.appspot.com/news/format/json/page/. Origin http://hackernews.dev is not allowed by Access-Control-Allow-Origin. 

因此,因此我把在JSONP的嘗試,並獲得

Uncaught SyntaxError: Unexpected token : hndroidapi.appspot.com:1 

1號線是整個JSON響應,在一個線,但不是包裹在回調。因此,看起來這個API不支持JSONP。

因此,有什麼我可以做的解決這個問題?不幸的是,我有點難過,似乎沒有辦法解決這個問題。

我的代碼如下:

var ajaxReq = $.ajax({ 
    url: "http://hndroidapi.appspot.com/news/format/json/page/", 
    dataType: "jsonp" 
}); 
ajaxReq.done(function(d) { 
    console.log("DONE", d); 
}); 
ajaxReq.error(function(d) { 
    console.log("ERROR", d); 
}); 

任何幫助,非常感謝!

+0

所以你在json響應中出現「Unexpected token:」錯誤,對嗎?聽起來像它沒有正確格式化json。 – MrOBrian 2012-08-16 19:17:03

+0

你可以通過jsonlint.com運行你的反應,並確切地看到你的問題在哪裏。 – scrappedcola 2012-08-16 19:18:24

+0

如果我通過JSON Lint運行它,它說JSON是有效的。我相信這個錯誤是圍繞着一個缺少的回調參數。 – 2012-08-16 19:19:30

回答

0

的API絕對不支持JSONP(除非我失去了一些東西,不是太熟悉Python):https://github.com/glebpopov/Hacker-News-Droid-API/blob/master/Formatter.py你在這一點上唯一的選擇是要麼使用YQL或服務器端代理

+0

是的,就是這樣。也許我可以分叉它並添加JSONP支持。驚人的HN沒有自己的API! 。謝謝。 – 2012-08-16 20:03:57

0

出於安全原因,您無法向網站以外的網站發出AJAX請求。

+2

你可以使用帶回調的JSONP,但看起來這個服務器不支持它。我想知道是否有解決方法。 – 2012-08-16 19:15:37