Ich habe ein Problem mit meinem JQuery + Ajax-Aufruf, der eine meiner Web-Service-Methode über Cross-Domain verbrauchen wird. Ich habe versucht, alle möglichen Wege zu erreichen, aber immer noch keinen Erfolg. Bitte hilf mir bei dem, was ich falsch mache. kann ich Webserver für einige Sicherheitseinstellungen konfigurieren müssen? Unten ist mein Code. Bitte lassen Sie es mich wissen, wenn Sie Fragen zu meinem Code haben.So rufen Sie Webservices mit Jquery + Ajax
Ich habe dies in web.config meines Web-Service hinzugefügt.
<system.webServer>
<httpProtocol>
<customHeaders>
<add name="Access-Control-Allow-Origin" value="*" />
</customHeaders>
</httpProtocol>
</system.webServer>
und diese auf meine Anwendung zeigte
$(document).ready(function() {
$.support.cors = true;
$.ajax({
url:'http://si-cb01:10000/service1.asmx/GetJsonData',
type: 'GET',
crossDomain: true,
contentType: "application/json; charset=utf-8",
dataType: "json", // change data type to jsonp
success: function (response) {
alert(response.d);
Result = response.d;
},
error: function (response) {
alert("Error");
}
});
});
IE Console diesen Fehler
XMLHttpRequest: Netzwerkfehler 0x80070005, Zugriff verweigert.
Die Google Chrome-Konsole hat diesen Fehler angezeigt.
XMLHttpRequest kann http://si-cb01:10000/service1.asmx/GetJsonData nicht geladen werden. Hier ist si-cb01 nichts anderes als Systemname mit IP 192.168. *. ***
Antwort auf Preflight-Anfrage nicht übergeben Kontrolle der Zugriffskontrolle: Keine 'Access-Control-Allow-Origin'-Header ist auf der angeforderte Ressource.
Herkunft 'http://localhost:xxx' ist daher nicht erlaubt.
Die Antwort hatte HTTP-Statuscode 500
ich das Problem sah auf und es scheint eine fehlende Cross-Origin Resource Sharing (CORS) zu sein, aber ich kann nicht die Lösung für das verstehen.
ich in der Vergangenheit dieses Problem hatte, und die Lösung kam von Zugabe zu meinem Tomcatbediener ein kleines Stück von XML, das entspannt die Beschränkung. Der Fehler rührt von der Tatsache her, dass (scheinbar) Ihre Anwendung in einer Domäne ausgeführt wird, während Sie sich einem Server in einer anderen Domäne nähern. Muss gestehen, ich habe eine ganze Weile gebraucht, um dieses Problem zu lösen. – FDavidov
Ist die Domäne des Web-Service-Servers dieselbe wie die des Web-Servers? – Anson
FYI: "CORS" Politik gilt auch, wenn die Ports unterscheiden, auch wenn die Domain die gleiche ist, was bedeutet, den Aufruf von 'http: // domain: 123 /' von 'http: // domain: 789 /' erfordert auch die ' CORS' eingestellt werden. – xxxmatko