Мне нужно использовать веб-API, разработанный на C # из Javascript.
Вот код веб-API:
[EnableCors("*", "*", "*")]
public class AfiliadosController : ApiController
{
public DataTable ConsultarAfiliados(string oPrefix)
{
return GetListaAfiliados(oPrefix);
}
public DataTable GetListaAfiliados(string oPrefix)
{
negPrevision neg = new negPrevision();
return neg.obtenerAfiliadosPorNombre(oPrefix);
}
}
Я использую [EnableCors ("", "", "*")] только для тестирования.
А вот мой код переднего конца:
function ConsumeWS(oPrefix) {
$.ajax({
//traditional: true,
type: "POST",
url: "http://localhost:55782/api/Afiliados/",
data: {oPrefix: oPrefix }
beforeSend: function (request) {
console.log("Before");
request.setRequestHeader("Content-Type", "application/json");
},
success: function (data) {
console.log("It works");
console.log(JSON.stringify(data));
//DO STUFF WITH DATA
},
error: function (error) {
console.log(error);
}
});
}
oPrefix - строка, взятая из ввода текстового поля.
Веб-API предназначен для возврата таблицы данных с данными людей. Просто в столбцы.
Когда я тестирую свой WebAPI с SOAP UI, он работает нормально. Я также попытался определить метод моего API, например:
public DataTable ConsultarAfiliados()
{
return GetListaAfiliados("ANY_NAME");
}
и когда я использую JS, он работает нормально.
Итак, моя проблема в том, что я не могу отправить параметры с JS на сервер. Я много чего перепробовал и при попытке передать параметры выдает ошибку
«Ответ на запрос предварительной проверки не проходит проверку контроля доступа: в запрошенном ресурсе отсутствует заголовок« Access-Control-Allow-Origin ». Следовательно, Origin 'http://localhost:64493' не имеет доступа».