Я использую angularJS и это мой код на фабрике, которая делает HTTP POST позвонитьВАРИАНТЫ Метод не допускается. Получить Работает, но не 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' }
});
An работает вызов HTTP GET и я получаю JSON обратно без проблем
return $http({
method: 'GET',
url: requestUrl,
params: { userToken: userToken, assignedIds: contactId, companyIds: "" }
});
Установив Content-Type в приложение/json, выдается запрос OPTIONS. До сих пор в моих тестах оказалось, что настройка типа контента на «application/x-www-form-urlencoded» невозможна, потому что веб-служба будет принимать только данные json. У меня нет доступа для изменения кода веб-службы. Другая команда позаботится об этом.
заголовки запроса, который идет с ВАРИАНТОВ является
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
Заголовки ответа заключается в следующем
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
Способ по-прежнему не допускается. Я получаю «405 метод не допускается».
Я думаю, что это потому, что «Access-Control-Allow-Headers» отправляет мне типы, а случай «Content-Type» не сопоставляется.
Клиент и сервер работают на HTTPS.
Любые идеи?
угловая версия: 1.5.7
Update
Разработчик веб-сервис, а затем это руководство, чтобы включить CORS на сервере, и он работал. http://enable-cors.org/server_wcf.html
, так как я не могу изменить код сервера Я открыт для изменения заголовка запроса «Access-Control-Request-Headers», поэтому его значение устанавливается на «Content-Type» вместо «content-type» – iJK
Спросите команду webservice, если они действительно поддерживают метод POST. –
POST разрешен. Я вижу код через TFS. [WebInvoke (Method = "POST", BodyStyle = WebMessageBodyStyle.WrappedRequest)] [OperationContract] – iJK