Ich habe eine Menge Probleme beim Erhalten einer domainübergreifenden POST-Anfrage, um einen Api-Controller in der neuesten Beta 2-Version zu treffen.CORS POST Requests funktioniert nicht - OPTIONS (Bad Request) - Der Ursprung ist nicht erlaubt
Chrome (und andere Browser) ausspucken:
OPTIONS http://api.hybridwebapp.com/api/values 400 (Bad Request)
POST http://api.hybridwebapp.com/api/values 404 (Not Found)
Es zu this issue in Zusammenhang stehen können, aber ich habe das Problem zu umgehen und einige andere Korrekturen wie web.config angewendet additions here
ich waren Ich knallte meinen Kopf damit für eine Weile und so schuf ich eine Lösung, um das Problem genau zu reproduzieren.
Laden Sie die Web-App gibt es 2 Tasten eine für GET eins für POST und die Antwort wird neben der Schaltfläche angezeigt. GET funktioniert. POST kann nicht erfolgreich zurückgegeben werden.
Ich bin in der Lage einen Hinweis auf die Ursache von Fiddler zu bekommen, aber es macht keinen Sinn, weil wenn man sich die Antwort sieht es die Domain in der Include-Access-Controll--Allow-Origin-Header:
es gibt einen Ordner in der Lösung „ConfigurationScreenshots“ mit ein paar Screenshots der IIS-Konfiguration (Website-Bindungen) und Projekteigenschaften Konfigurationen machen es so einfach wie möglich, mir zu helfen :)
genannt istEDIT: Vergessen Sie nicht, diesen Eintrag hinzufügen Datei Host (% SystemRoot% \ system32 \ drivers \ etc):
127.0.0.1 hybridwebapp.com api.hybridwebapp.com
** STATUS: ** Es scheint, dass einige Browser wie Chrome mir erlauben um mit dem POST fortzufahren, unabhängig von der Fehlermeldung in der OPTIONS-Antwort (während andere wie Firefox dies nicht tun). Aber ich halte das nicht für gelöst.
Schauen Sie sich die Fidler Screenshots der OPTIONS-Anforderung hat
Access-Control-Allow-Origin: http://hybridwebapp.com
Und doch den Fehler:
Der Ursprung http://hybridwebapp.com ist nicht erlaubt
Das ist völlig widersprüchlich, als ob es den Header ignoriert.
Können Sie die Header für die POST-Anfrage auch einschließen? Das Preflight ist auch seltsam: Es gibt eine 400 mit einer Fehlermeldung im Hauptteil zurück, aber es gibt auch die korrekten CORS-Header zurück, so dass das Preflight erfolgreich ist (wie durch die Tatsache, dass es von einer POST-Anfrage gefolgt wird). – monsur
Hinzugefügt. Danke für einen Blick. – parliament
Ich glaube, du könntest mit einem bekannten Problem konfrontiert werden, das nach der Beta behoben wurde. Der Kommentar des folgenden Fehlers hat den Link zu dem Update: http: //aspnetwebstack.codeplex.com/workitem/1050 –