2016-07-08 15 views
0

Ich bin ein api Endpunkt aus wikipedia testet:Ruby on Rails Ajax-Aufruf auf Wiki-API gibt CORS Ausgabe

https://en.wikipedia.org/w/api.php?action=query&titles=Main%20Page&prop=revisions&rvprop=content&format=json

einen Ajax-Aufruf auf Ruby on Rails verwenden. Das Tutorial schlägt vor, coffeescript zu verwenden, was ich verwende.

$.ajax 'https://en.wikipedia.org/w/api.php?action=query&titles=Main%20Page&prop=revisions&rvprop=content&format=json', 
type: 'GET' 
format: 'json' 
origin: 'https://www.mediawiki.org' 
success: (data, textStatus, jqXHR) -> 
    console.log(data); 

Alles, was ich bin immer ist dieser Fehler:

Cross-Origin-Anforderung blockiert: Die Same Origin Policy verweigert das bei https://en.wikipedia.org/w/api.php?action=query&titles=Main%20Page&prop=revisions&rvprop=content&format=json die Remote-Ressource zu lesen. (Grund: CORS-Header 'Access-Control-Allow-Origin' fehlt).

Ich habe zu dem Problem recherchiert und versucht Rack-Cors und dann konfiguriert, aber bis jetzt, bekomme ich immer noch die CORS-Problem und nicht in der Lage, die API-Endpunkt-Ergebnis abrufen. Kann jemand helfen?

+0

Ich bin verwirrt, Sie "verwenden einen Ajax-Aufruf auf Ruby on Rails" und youre Aufruf wikipedia? Das macht keinen Sinn. Sie können den 'origin' Header nicht auf Javascript setzen. Wenn du den Server kontrollierst, musst du 'response.headers ['Access-Control-Allow-Origin'] = '*' in deiner Ruby-on-Rails-Ansicht hinzufügen .. anders als das .. das wird nicht funktionieren. Gib mir Details, und ich helfe weiter –

+0

Ich versuche, den Wikipedia-Api-Endpunkt zu verwenden, und dies zu tun, im Implementieren eines Ajax-Aufrufs, um die Ergebnisse des Endpunkts abzurufen. Ich bin nicht in der Lage, die Ergebnisse zu bekommen, also habe ich auf CORS-Funktionalität gelesen und einer der Edelsteine, die dies auf Ruby ermöglicht, ist RACK-CORS. Allerdings bekomme ich immer noch nichts. – Arrivedacci

Antwort

0

ich mein Problem mit diesem Code gelöst:

$.ajax 'https://en.wikipedia.org/w/api.php?action=query&titles=Main%20Page&prop=revisions&rvprop=content&format=json', 
type: 'GET' 
dataType: 'jsonp' 
origin: 'https://www.mediawiki.org' 
success: (data, textStatus, jqXHR) -> 
    console.log(data) 

Hinzufügen JSONP der Sache war, dass es für mich getan hat. Ich ersetzte das Format und bekam die Antwort von der URL zurück.