Я нахожусь в проекте, где мне нужно заполнить текстовое поле (как если бы это был элемент управления select) данными, запрашиваемыми из веб-службы, пока пользователь пишет в текстовом поле.
Веб-сервис разработан в том же решении.
Проблема в том, что когда я делаю запрос со стороны клиента, он выдает мне сообщение:
"Failed to load http://.../wsConsultaAfiliados.asmx: No 'Access-Control-Allow-Origin' header is present on the requested resource.
Я некоторое время искал и прочитал, что это проблема CORS. Однако я не понимаю, почему. Я запрашиваю данные для веб-службы со стороны клиента, которые находятся в том же домене.
По тому, что я искал, я понимаю, что по соображениям безопасности CORS запрашивает данные из домена X в домен Y.
Это первый раз, когда я использую веб-сервис, и я немного растерялся из-за схемы, которой я должен следовать.
Добавить код
public class wsConsultaAfiliados : System.Web.Services.WebService
{
/// <summary>
/// Busca una lista de Afiliados que coincidan con los parámetros de entrada. Devuele DataTable.
/// </summary>
/// <returns></returns>
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
[WebMethod]
public DataTable ConsultarAfiliados(string oPrefixText)
{
var listaAfiliados = GetAfiliados(oPrefixText);
return listaAfiliados;
}
/// <summary>
/// Devuelve un DataTable con Codigo y Nombre del afiliado.
/// </summary>
/// <param name="oPrefixText"></param>
/// <returns></returns>
public DataTable GetAfiliados(string oPrefixText)
{
negPrevision neg = new negPrevision();
return neg.obtenerAfiliadosPorNombre(oPrefixText);
}
}
Вот код из веб-сервисов. Он запрашивает данные для логического уровня.