ich AngularJS verwende und das ist mein Code in einer Fabrik, dieOPTIONS Methode nicht erlaubt. Erhalten Sie Works, aber nicht POST
var data = { ticket: JSON.stringify(aticket), "autoAssignDefaultSLA": "true", "autoAssignDefaultPriority": "true" };
return $http({
method: 'POST',
url: requestUrl,
data: data,
headers: { 'Content-Type': 'application/json; charset=UTF-8' }
});
eine HTTP-GET-Aufruf funktioniert HTTP POST Anruf macht und ich json wieder ohne Probleme
return $http({
method: 'GET',
url: requestUrl,
params: { userToken: userToken, assignedIds: contactId, companyIds: "" }
});
Wenn Sie den Inhaltstyp auf application/json setzen, wird eine OPTIONS-Anfrage gesendet. In meinen Tests scheint es bisher so zu sein, dass das Setzen des Inhaltstyps auf "application/x-www-form-urlencoded" nicht möglich ist, da der Web-Service nur json-Daten akzeptiert. Ich habe keinen Zugriff, um den Web-Service-Code zu ändern. Ein anderes Team kümmert sich darum.
Die Anforderungs-Header, die mit Optionen geht, ist
Host: staging.url.com
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:48.0) Gecko/20100101 Firefox/48.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
DNT: 1
Access-Control-Request-Method: POST
Access-Control-Request-Headers: content-type
Origin: https://url.synbeta.com
Connection: keep-alive
Die Antwort-Header ist wie
Access-Control-Allow-Headers: Authorization, Content-Type, If-None-Match, Cookie, Cookies, x-session-id, x-atg-host
Access-Control-Allow-Methods: GET, HEAD, POST, PUT, PATCH, DELETE, OPTIONS
Access-Control-Allow-Origin: *
Allow: POST
Cache-Control: private
Content-Length: 1565
Content-Type: text/html; charset=UTF-8
Date: Thu, 30 Jun 2016 16:39:48 GMT
Server: Microsoft-IIS/7.5
Set-Cookie: ASP.NET_SessionId=p5aolcjpwd0qfhqjdbluha1h; path=/; HttpOnly
X-AspNet-Version: 4.0.30319
X-Powered-By: ASP.NET
Das Verfahren folgt noch nicht erlaubt. Ich bekomme "405 Methode nicht erlaubt".
Ich denke, es ist, weil die "Access-Control-Erlaube-Header" mir Typen sendet und die "Content-Type" -Fall nicht übereinstimmt.
Der Client und der Server werden auf HTTPS ausgeführt.
Irgendwelche Einsichten?
abgewinkelte Ausführung: 1.5.7
aktualisieren
Der Webservice-Entwickler folgte diesem Leitfaden CORS auf dem Server zu ermöglichen, und es funktionierte. http://enable-cors.org/server_wcf.html
da ich den Server-Code nicht ändern kann zum Endpunkt Ich bin offen, um den Request-Header an sich ändernde "Access-Control-Request-Header", so wird dessen Wert auf "Content-Type" gesetzt "content-type" – iJK
Fragen Sie das Webservice-Team, ob sie die POST-Methode wirklich unterstützen. –
POST ist erlaubt. Ich kann den Code über TFS sehen. [WebInvoke (Methode = "POST", BodyStyle = WebMessageBodyStyle.WrappedRequest)] [OperationContract] – iJK