Я пытаюсь вызвать метод службы WCF, используя запрос POST Http из другого проекта, он разрешает запрос GET, но когда я пытаюсь выполнить запрос POST, он показывает «Метод не разрешен» .
Когда я пытался это показать, эта ошибка в моей консоли:
Доступ к XMLHttpRequest по адресу http://localhost:7280/api/values/24' от источника '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 и клиентское приложение как разные проекты.
Пожалуйста, помогите решить эту проблему.