/ / Yahoo! RSS-Finanzen mit JQuery und Google API-Fehler - jquery, rss, google-api, yahoo

Yahoo! Finanzen RSS mit JQuery und Google API-Fehler - jQuery, RSS, Google-API, Yahoo

Der Versuch, RSS von Yahoo! Die Finanzierung basiert auf Antworten von Andrew und Dylan Valade in Analysieren Sie RSS mit jQuery aber erhalte einen Fehler:

data.responseData ist null

Erfolg() data = Object {responseDetails = "Feed konnte nicht geladen werden.", responseStatus = 400, responseData = null}

Wenn Sie dieselbe URL aus dem Browser oder PHP-CURL laden, werden die RSS-Daten in Ordnung zurückgegeben

URL: http://feeds.finance.yahoo.com/rss/2.0/headline?s=^ FTSE, URL-Codierung: http% 3A% 2F% 2Ffeeds.finance.yahoo.com% 2Frss% 2F2.0% 2Fheadline% 3Fs% 3D% 5EFTSE

Testen von einem lokalen vhost auf meinem Mac (OS X 10.5.8, XAMPP 1.7.3). Ich habe das zRSSfeed-Plugin ausprobiert, das auch die Google-API verwendet, und den gleichen Fehler erhalten: "Feed konnte nicht geladen werden". Indexdaten und Diagramm funktionieren einwandfrei

Danke im Voraus


function getRSS(symbol, url, callback) {
$("#rss").html("http://feeds.finance.yahoo.com/rss/2.0/headline?s="+symbol+"<br />");
$("#rss").append(encodeURIComponent(url));
$.ajax({
url: document.location.protocol + "//ajax.googleapis.com/ajax/services/feed/load?v=1.0&num=10&callback=?&q=" + encodeURIComponent(url),
dataType: "json",
success:
function (data) {
callback(data.responseData.feed);
},
error:
function (jqXHR, textStatus, errorThrown) {
$("#rss").append("<span class="downVal">"+textStatus+"</span>");
$("#rss").append("<br />"+"<span class="downVal">"+errorThrown+"</span>");
}
});
}

function parseRSS(newsFeed) {
$("#rss").append(newsFeed);
}

jQuery(document).ready(function($) {
...
summary(symbol);
$("#chart").html("<img style="-webkit-user-select:none" src="/images/http://chart.finance.yahoo.com/z?s="+symbol+"&t=3m&q=l&l=on&z=m&p=m20,m200,v&a=r14,m26-12-9">");
getRSS(symbol, "http://feeds.finance.yahoo.com/rss/2.0/headline?s="+symbol, parseRSS);
...

Antworten:

3 für die Antwort № 1

Als Erstes ist darauf hinzuweisen, dass der Feed einen 400-Code zurückgibt - also laut W3C - Empfehlungen sollten Sie den Anruf nicht wiederholen.

10.4.1 400 Bad Request

Die Anfrage konnte vom Server aufgrund von Missbrauch nicht verstanden werden Syntax. Der Client SOLLTE die Anfrage NICHT ohne wiederholen Modifikationen.

Wenn ich die URL öffne:

http://feeds.finance.yahoo.com/rss/2.0/headline?s=^FTSE

Ich erhalte einen 404-Fehler. Ist die Suche also möglicherweise nicht immer gültig oder ist die Rate begrenzt?

Wenn Sie überzeugt sind, dass der Anruf in Ordnung ist, liegt wahrscheinlich ein Problem mit der Leitung vor, die den Feed aufruft:

$("#rss").html("http://feeds.finance.yahoo.com/rss/2.0/headline?s="+symbol+"<br />"

Ziehe es zurück, alarmiere die Symbolvariable, um sicherzustellen, dass es das ist, was du willst, und füge Zeilen wie die folgenden für ein rudimentäres Debugging hinzu:

alert (symbol);
var feedUrl = "http://feeds.finance.yahoo.com/rss/2.0/headline?s="+symbol;
alert (feedUrl);

... und prüfen Sie abschließend, ob das angehängte <br /> bricht tatsächlich die Feed-URL.