servicestack - Opciones de la estación de servicio 404 y origen de Cors
(0)
Estoy haciendo una solicitud de cors de mi
cliente: http://mypcname.companyname
al estante de servicios
servidor: http://mypcname.companyname:83/customersInformation
Esa es la solicitud con la biblioteca javascript superagent:
superagent.get(requestUrl)
.set(''Authorization'', "basictoken " + getToken())
.set(''Accept'', ''application/json'')
.end(function (response) {
});
¡Esta solicitud de obtención funciona totalmente bien con la API web ! Entonces, el problema no puede ser del lado del cliente, en mi opinión.
Esa es mi configuración de la pila de servicios:
Plugins.Add(new CorsFeature(allowedOrigins: Settings.Default.SmartAllowedCorsOrigin, allowCredentials: true, allowedHeaders: "Content-Type, Authorization"));
RequestFilters.Add((httpReq, httpRes, requestDto) =>
{
if (httpReq.HttpMethod == "OPTIONS")
{
httpRes.End();
}
});
Así es como configuré la clase con los clientesInformación de datos:
[Route(RouteTemplate,"GET, OPTIONS",...)]
Como utilizo el filtro de solicitud de opciones de arriba, el error de la opción 404 se ha ido pero ahora tengo algo aún peor ...
OPTIONS http://mypcname.companyname:83/customersInformation Origin http://mypcname.companyname is not allowed by Access-Control-Allow-Origin.
¿Qué tengo que hacer en el lado del servidor para que finalmente funcionen los cors?
ACTUALIZAR
Como respuesta a la pregunta de mythz obtener los datos del encabezado respone:
Estos son los datos sin procesar que recibo como respuesta del servidor usando los valores predeterminados en el complemento cors: (pestaña raw de fiddler)
HTTP/1.1 200 OK
Server: Microsoft-HTTPAPI/2.0
Date: Tue, 29 Oct 2013 10:04:48 GMT
Content-Length: 0
error en google chrome:
OPTIONS http://mypcname.companyname:83/customersInformation Origin http://mypcname.companyname is not allowed by Access-Control-Allow-Origin.
El método Get que debería llamarse después de las opciones (al menos mi expectativa) nunca se golpea probablemente debido al error de originación de cors y porque ni siquiera se permiten las OPCIONES que suceden antes.
ACTUALIZACIÓN 2
Solicitud al servidor:
OPTIONS http://mypcname.companyname:83/customersInformation HTTP/1.1
Host: mypcname.companyname:83
Connection: keep-alive
Cache-Control: no-cache
Pragma: no-cache
Access-Control-Request-Method: GET
Origin: http://mypcname.companyname
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/30.0.1599.101 Safari/537.36
Access-Control-Request-Headers: accept, authorization, x-requested-with
Accept: */*
Referer: http://mypcname.companyname/
Accept-Encoding: gzip,deflate,sdch
Accept-Language: de-DE,de;q=0.8,en-US;q=0.6,en;q=0.4