2016-04-07 8 views
-1

Ich versuche, eine AJAX Anfrage mit dieser URL zu machen http://api.adorable.io/avatars/285/sd Ich habe crossDomain auf True gesetzt, aber die Anfrage schlägt fehl jedes Mal mit diesem Fehler.Kein 'Access-Control-Allow-Origin'-Header ist im angeforderten Ressourcenfehler vorhanden, wenn Crossdomäne auf True gesetzt ist

No 'Access-Control-Allow-Origin' header is present on the requested resource. 

Es ist nicht möglich, die Anfrage http://www.api.adorable.io/avatars/285/sd mit zu machen. Was mache ich hier falsch? Bitte helfen

$(document).ready(function(){  
$.ajax({ 
     url: "http://api.adorable.io/avatars/285/sd", 
     type: "GET", 
     crossDomain: true, // enable this 
     success: function (data) { 
      console.log(data); 
     } 
    }); 
}); 

Antwort

1

Es ist nicht genug, es in Ihrem Ajax-Aufruf zu setzen, die Datei, die Sie aufrufen (http://api.adorable.io/avatars/285/sd) muss die Header-Cross-Domain-Berufung zu ermöglichen.

header('Access-Control-Allow-Origin: *');

Würde der Code für PHP hinzufügen all Herkunft zu ermöglichen. Ändern Sie das * in Ihre Domain, wenn Sie nur eine bestimmte Domain zulassen möchten.

Da Sie diese URL nicht kontrollieren können, benötigen Sie eine gute Problemumgehung. Sie können lokal eine PHP-Datei erstellen, die cURL verwendet, um die Ressource, die Sie aufrufen, von adorable.io über ihre API abzurufen und Ihre Ajax-Anforderung dazu zu verwenden, dieses lokale PHP-Skript aufzurufen. Dann müssen Sie sich nicht um domänenübergreifende Probleme im Ajax kümmern, und alles wird funktionieren. Fügt dem Prozess einen geringen Overhead hinzu, ist jedoch eine einfache Problemumgehung.

+0

Schreib ich das in die Ajax-Anfrage? (Im nicht mit PHP verwende ich nur HTML und Javascript/jquery) – Terrance

+0

@Terrance nirgends, es gehört nicht in die Ajax-Anfrage. Recherchieren Sie .. –

+0

@KevinB Ich habe auf SO jede Antwort gesucht, entweder 'Cross-Domain' hinzufügen oder' www' zu der URL hinzufügen, aber wie in der Antwort angegeben funktioniert die Anfrage nicht, wenn einer dieser hinzugefügt werden – Terrance

Verwandte Themen