jQuery-Aufruf der WebService liefert "Kein Transport" Fehler
Habe ich die folgenden web-service;
[WebMethod]
public string HelloWorld()
{
return "Hello World";
}
Ist es stock-standard ohne änderungen an der Klasse Dekorateure.
Habe ich diese jQuery-Methode;
var webMethod = "http://localhost:54473/Service1.asmx/HelloWorld";
$.ajax({
type: "POST",
contentType: "application/json; charset=utf-8",
data: "{}",
dataType: "json",
url: webMethod,
success: function(msg){ alert(msg.d); },
error: function (XMLHttpRequest, textStatus, errorThrown) {
alert(errorThrown);
}
});
Es ist eine post-Aktion, denn später brauche ich, um post-Daten zu.
Wenn ich führen Sie die jQuery bekomme ich ein "Kein transport" - Fehler zurückgegeben.
Eine Sache ich sollte auch erwähnen, dass die jQuery gespeichert ist, in eine einfache HTML-Datei auf meinem Rechner und der WebService läuft auf meiner Maschine auch.
Es ist kein code hinten auf der HTML-Seite es ist einfach eine web-Seite und nicht ein c# - Projekt oder so etwas.
Kann jemand bitte zeigen Sie mich in die richtige Richtung?
InformationsquelleAutor der Frage griegs | 2011-03-09
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn Ihr jQuery-Seite nicht geladen werden, aus
http://localhost:54473
dann das Problem ist wahrscheinlich, weil Sie versuchen, cross-domain-Anfrage.Update 1
Werfen Sie einen Blick auf in diesem blog-post.
Update 2
Wenn dies tatsächlich das problem (und ich vermute, es ist), möchten Sie vielleicht check out JSONP als eine Lösung. Hier sind ein paar links, die helfen könnten, Sie bekommen gestartet:
InformationsquelleAutor der Antwort no.good.at.coding
Hinzufügen:
jQuery.support.cors = true;
Es ermöglicht cross-site-scripting jQuery (eingeführt nach dem 1.4 x, glaube ich).
Wurden wir mit einer wirklich alten version von jQuery (1.3.2) und tauschte es aus für 1.6.1. Alles funktionierte, außer .ajax () - Aufrufe. Das hinzufügen der obigen Zeile das problem behoben.
InformationsquelleAutor der Antwort SrBlanco
Ich hatte den gleichen Fehler auf einer Seite, und ich fügte diese Zeilen:
und es funktioniert endlich bei mir 😉 kein Fehler mehr im IE9.
InformationsquelleAutor der Antwort bsuttor
Keine der vorgeschlagenen Antworten völlig für mich gearbeitet. Mein use-case ist etwas anders (ein ajax-get ein S3 .json Datei in IE9). Einstellung
jQuery.support.cors = true;
entledigte sich dieNo Transport
Fehler aber ich war noch immerPermission denied
Fehler.Was hat Arbeit für mich war, mit jQuery-ajaxTransport-XDomainRequest zu erzwingen, IE9 verwenden XDomainRequest. Mit dieser nicht Einstellung
jQuery.support.cors = true;
InformationsquelleAutor der Antwort rynop
ich es lösen indem dataType='jsonp'
am Ort der dataType='json'
InformationsquelleAutor der Antwort Abhishek
Bekam ich auch dieses problem und alle Lösungen, die oben gegeben werden, entweder nicht oder waren nicht geeignet aufgrund der webservice-client-Beschränkungen.
Für diese, ich habe ein iframe in meine Seite, die wohnte in der client -; s-server. Also, wenn wir die post unsere Daten auf den iframe und der iframe dann sendet Sie an den webservice. Damit die cross-domain-Referenzierung entfällt.
Wir Hinzugefügt ein 2-Wege-Herkunfts-check, um zu bestätigen, nur autorisierte Seite posts von Daten zum und vom iframe.
Hoffe es hilft
InformationsquelleAutor der Antwort Riju Mahna
Ich es gelöst einfach durch das entfernen der domain aus der url-Anforderung.
InformationsquelleAutor der Antwort Draghon