Я пытаюсь вызвать метод службы WCF, используя запрос Http POST из другого проекта, он разрешает запрос GET, но когда я пытаюсь выполнить запрос POST, он показывает «Метод не разрешен».
Когда я попробовал, он показывает эту ошибку в моей консоли:
Доступ к XMLHttpRequest в 'http://localhost:7280/api/values/24' из origin 'http://localhost:6538' заблокирован политикой CORS: ответ на запрос предварительной проверки не передает доступ контрольная проверка: не имеет статуса HTTP ok.
Веб-API: Метод:
[WebInvoke(UriTemplate = "/values", Method = "POST", ResponseFormat = WebMessageFormat.Json), CorsEnabled]
void AddValue(string value);
Реализация метода
public void AddValue(string value)
{
string id = nextId.ToString();
nextId++;
allValues.Add(id, value);
string location = WebOperationContext.Current.IncomingRequest.UriTemplateMatch.RequestUri.ToString() + "/" + id;
WebOperationContext.Current.OutgoingResponse.SetStatusAsCreated(new Uri(location));
}
Клиентское приложение:
$("#post").click(function () {
var data = "\"" + $("#value").val() + "\"";
$.ajax({
url: valuesAddress,
type: "POST",
contentType: "application/json",
data: data,
success: function (result) {
$("#result").text(result);
},
error: function (jqXHR, textStatus, errorThrown) {
$("#result").text(textStatus);
}
});
});
Я подписался на https://code.msdn.microsoft.com/Implementing-CORS-support-c1f9cd4b/view/SourceCode#content Я создал веб-API и клиентское приложение как разные проекты. Пожалуйста, помогите решить эту проблему.