2016-04-06 3 views
0

Gut Leute ... Ich habe versucht, dieses Problem zu beheben, einige Lösungen hier und in anderen Sites zu fangen ... Aber ich bekomme keine Lösung für dieses Problem!JSON Domänenübergreifender Fehler

Nun, was ist das eigentliche Problem .. Es einfach ist, ich habe diesen Code:

function refreshRadioStats() 
{ 
    jQuery.support.cors = true; 
    $.get('http://raphaleao.com/json', function(data){ 
     var templateStats = '<span class="glyphicon glyphicon-music"></span> '+ j_lang[0] + 
          '<marquee><h4><i>'+data.musica_atual+'</i></h4></marquee><br>'+ 
          '<span class="glyphicon glyphicon-headphones"></span> '+j_lang[1]+': <b>'+data.ouvintes_conectados+ 
          '</b><br>'+ 
          '<span class="glyphicon glyphicon-user"></span> '+j_lang[3]+': <b>'+locutor+'</b><br><br>'+ 
          '<button type="button" class="btn btn-info" id="refreshstadistics" style="width:100%"><span class="glyphicon glyphicon-refresh"></span> '+ j_lang[2] +'</button>'; 
     $('#resultse').append(templateStats); 
    },'json'); 
} 

Ok, was ist das Problem? Das Problem ist: Das Skript kann offenbar die Website http://raphaleao.com/json nicht zugreifen und dafür funktioniert nicht. Das Problem:

XMLHttpRequest nicht http://raphaleao.com/json laden. Der 'Access-Control-Allow-Origin'-Header enthält mehrere Werte' *, * ', aber nur einer ist erlaubt. Origin 'Stack erlaubt mir nicht mehr als 2 Links zu posten' ist daher nicht erlaubt.

Das Skript funktioniert, weil ich mit anderen Website in JSON getestet haben und funktioniert perfekt. Ich habe bereits in diesem in web.config setzen:

<httpProtocol> 
     <customHeaders> 
     <add name="Access-Control-Allow-Origin" value="*" /> 
    </customHeaders> 
</httpProtocol> 

Und das gleiche Problem, könnte euch helfen Sie mir mit diesem?


ich habe das Update Nun, versuchen nach ein paar Dinge und @mattferderer öffnete meinen Verstand, ich herausgefunden, was mit all dies vor sich geht ...

Zuerst habe ich entfernt haben die web.config Seite und verlassen nur die header() Funktion. Okay, erstes Problem behoben (lol);

Und als, ich habe herausgefunden, warum $ .getJSON() Sie die Informationen von anderen Websites nicht geladen werden ... Es einfach ist, fügen Sie einfach (zumindest habe ich es in PHP) folgt aus:

header('Content-Type: text/javascript'); 

in meinem Fall die Seite im Format text/html ist, so $ .getJSON() wird in dieser Seite alle Informationen zu laden, nicht in der Lage!

Danke Jungs und Entschuldigung für das schreckliche Englisch!

+0

Was ist Ihr Backend? Sie müssen den Ursprung der Zugriffssteuerung irgendwo falsch festlegen oder die Werte in zwei verschiedenen web.configs zusammenführen. – Jack

+0

Der Zielserver muss den Header "Access-Control-Allow-Origin" bereitstellen. Ist dies nicht der Fall, können Sie nicht über den Browser auf den Inhalt zugreifen. – Pointy

+0

Was bedeutet @Jack? Denn ich bin neu in dieser Welt, sorry :( –

Antwort

1

Versuchen Sie, den Zugriffssteuerung-Zulassen-Ursprung aus Ihrer web.config zu entfernen, da das Problem der Zugriffssteuerung-Zulassen-Ursprung zweimal verwendet wird. Wenn Sie in Ihren Antwortüberschriften nachsehen, zeigt dies Folgendes an:

HTTP/1.1 200 OK 
Content-Type: text/html 
Content-Encoding: gzip 
Vary: Accept-Encoding 
Server: Microsoft-IIS/7.5 
X-Powered-By: PHP/5.5.11 
Access-Control-Allow-Origin: * 
X-Powered-By: ASP.NET 
Access-Control-Allow-Origin: * 
Date: Wed, 06 Apr 2016 14:43:54 GMT 
Content-Length: 387 
+0

Ye, ich vergesse das zu tun ... Dank bro! –