1
我正在使用reddit API在backbone.js應用中填充模型和集合。在主幹返回中使用JSONP獲取reddit註釋HTML
要填充的集合,我用其中的偉大工程同步方法JSONP請求:
收藏:
sync: function(method, model, options) {
var params = _.extend({
type: 'GET',
dataType: 'jsonp',
url: 'http://www.reddit.com/r/gif/.json&jsonp=',
processData: false
}, options);
console.log('fetching for collection')
return $.ajax(params);
},
然而,當我用同樣的方法來獲取一個單獨的鏈接,響應是HTML而不是JSON。
型號:
sync: function(method, model, options) {
var params = _.extend({
type: 'GET',
dataType: 'jsonp',
url: 'http://www.reddit.com/r/gif/comments/1y1edn/.json&jsonp=',
processData: false
}, options);
console.log('fetching for model')
return $.ajax(params);
},
爲什麼在模型和JSON用於收集reddit的API返回的HTML?
您是否測試過沒有Backbone的兩條鏈路? –
嘗試從您的網址中刪除&jsonp =。當我在瀏覽器中打開http://www.reddit.com/r/gif/comments/1y1edn/.json時,我看到了json。我不確定爲什麼你的第一個請求在工作,因爲它在瀏覽器中看起來像404。 reddit api是否需要jsonp回調函數名稱爲'jsonp'?如果是這樣,jQuery ajax已經將&callback =添加到jsonp請求中,因此可以嘗試將'jsonp'選項設置爲'jsonp':https://api.jquery.com/jQuery.ajax/ – mcbex
@mcbex謝謝搞定了。從url中刪除「&jsonp =」,並將其作爲查詢的一個選項添加是解決方案。乾杯! – patmood