2016-05-16 6 views
0

Ich habe diese URL: https://cdn.static.wizzair.com/en-GB/TimeTableAjax?departureIATA=BUD&arrivalIATA=TLV&year=2016&month=6Erfolg Rückruf nie für eine JSONP Anfrage aufgerufen erhalten

, die mir eine json zurückgibt. Wenn ich mit meinem Browser auf diese URL zugreife oder wenn ich die Anfrage mit einem REST-Client in meinem Browser (DHC) auslöse, funktioniert das! Nun, für mich mit einem Express-Server, der über https läuft, versuche ich, diese Anfrage funktioniert mit jQuery ohne Glück.

Irgendwie wird der Fehler Callback immer ausgeführt, obwohl ich im Netzwerk Debugging sehen, dass die Anfrage gut war und die JSON Antwort!

Mein Code:

/// removed old code /// 

$.ajax({ 
       method: 'GET', 
       url: "https://cdn.static.wizzair.com/en-GB/TimeTableAjax?departureIATA=BUD&arrivalIATA=TLV&year=2016&month=6&callback=?", 
       dataType: "jsonp", 
       success: function() { console.log("success"); }, 
       error: function(err) { ;console.log(err); } 
      }); 

** * EDIT * **

so verstehe ich, das wird nicht funktionieren, wenn das Ziel nicht JSONP kann leider.

es in den normalen GET-Anfrage Willen zu ändern erhält einen Fehler und diese Meldung:

XMLHttpRequest cannot load https://cdn.static.wizzair.com/en-GB/TimeTableAjax?departureIATA=BUD&arrivalIATA=TLV&year=2016&month=6 . The 'Access-Control-Allow-Origin' header has a value ' https://wizzair.com ' that is not equal to the supplied origin. Origin ' https://localhost:3000 ' is therefore not allowed access.

, die erwartet wird. Aber wie funktioniert das bei meinem Browser und beim lokalen Rest-Client? Was mache ich falsch?

Danke!

+0

'crossDomain: true,' hat keine Auswirkungen auf (a) JSONP-Anfragen oder (b) Anfragen mit nicht auf den gleichen Ursprung an erster Stelle zeigen. – Quentin

+0

Da sie JSONP nicht zurückgeben ... Sie können JSONP nicht einfach durch Hinzufügen einer Site zurückgeben, sie müssen sie unterstützen. – epascarello

+0

'contentType: 'application/json',' - Sie machen eine GET-Anfrage, so dass es keinen Anfragetext gibt, um den Inhaltstyp von zu beschreiben. – Quentin

Antwort

1

Die URL, die Sie anfordern, gibt JSON und nicht JSONP zurück.

JSONP-Anforderungen funktionieren nur, wenn der Server darauf ausgelegt ist, mit einer JSONP-formatierten Antwort darauf zu reagieren.

Weiterführende Literatur finden What is JSONP all about


Im Hinblick auf die erhebliche bearbeiten auf die Frage: this duplicate See.