2017-01-13 6 views
0

Hallo Ich habe eine kleine Web-API-Crud-Anwendung entwickelt und im IIS-Server gehostet. Ich kann alle Operationen ausführen. Ich hostet im Server 192.168.0.213:7777 und es funktioniert gut. Auf diese Dienste versuche ich über angularjs aus einer anderen Anwendung zuzugreifen.Wie Web-API-Dienste gehostet werden gehostet von angularJS

this.deleteSubscriber = function (user_id) { 
     var url = 'http://192.168.0.213:7777/api/User_Creation/' + user_id; 
     return $http.delete(url).then(function (response) { 
      return response.data; 
     }); 
    } 

Immer wenn ich versuchte, Benutzer zu löschen, erhalte ich Fehlermeldung wie unten.

Failed to load resource: the server responded with a status of 405 (Method Not Allowed) 
XMLHttpRequest cannot load http://192.168.0.213:7777/api/User_Creation/37. Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:26079' is therefore not allowed access. The response had HTTP status code 405. 

Kann ich wissen, warum ich dieses Problem bekomme? Muss ich Änderungen in der iis oder in meiner Anwendung vornehmen? Danke ...

+0

Vielen Dank für Ihre Nachricht. Darf ich wissen, welche Kopfzeile? Ich bin mir da nicht sicher, weil ich neu in der Web-API bin. –

+0

http://enable-cors.org/server_iis6.html –

+0

Funktioniert Ihre eckige App und Ihr Webdienst auf einer separaten IP-Adresse? – Yasser

Antwort

3

Sie CORS in iis8

durch die Konfiguration Custom

<system.webServer> 
    <httpProtocol> 
    <customHeaders> 
     <add name="Access-Control-Allow-Origin" value="*"/> 
     <add name="Access-Control-Allow-Headers" value="Content-Type"/> 
     <add name="Access-Control-Allow-Methods" value="POST,GET,DELETE"/> 
    </customHeaders> 
    </httpProtocol> 
</system.webServer> 
ermöglichen kann auch auf Code-Ebene konfiguriert werden können - Enabling Cross-Origin Requests in ASP.NET Web API 2

+0

Danke. wenn ich in Controller-Ebene gebe wie [EnableCors (Herkunft: "http://mywebclient.azurewebsites.net", Header: "*", Methoden: "*")] dann sollte ich in Methoden PUT, DELETE, GET erwähnen? –

+0

In web.config fand ich Ist es in Ordnung, wenn dieser Code dort ist? –

+0

Ich habe die Konfigurationsdatei bearbeitet und ein Stück Code über dem Controller-Level hinzugefügt, aber immer noch kein Glück. –

Verwandte Themen