ServiceStack GlobalResponseheaders virker ikke
Hej EksperterJeg har lavet en meget simpel ServiceStack REST service som jeg kalder via JQuery.Ajax(). Jeg har lagt servicen op på et webhotel og tester så via JQuery fra min localhost (Altså er vi ude i et Cross domain scenarie).
For at tillade dette Cross domain kald tilføjer jeg flg. til min AppHost.Configure:
SetConfig(new EndpointHostConfig
{
GlobalResponseHeaders = {
{ "Access-Control-Allow-Origin", "*" },
{ "Access-Control-Allow-Methods", "GET, POST, PUT, DELETE, OPTIONS" },
{ "Access-Control-Allow-Headers", "Content-Type" }
},
DefaultContentType = "application/json"
});
Når jeg kalder servicen via JQuery.Ajax() med denne configuration sender JQuery en OPTIONS request og stopper så med flg. fejl:
OPTIONS ... Origin http://localhost:9665 is not allowed by Access-Control-Allow-Origin. jquery-2.0.2.min.js:6
XMLHttpRequest cannot load ... Origin http://localhost:9665 is not allowed by Access-Control-Allow-Origin.
Men hvis jeg istedet for indsætter flg. i web.config, så virker det fint:
<httpProtocol>
<customHeaders>
<clear />
<add name="Access-Control-Allow-Origin" value="*" />
<add name="Access-Control-Allow-Headers" value="Content-Type" />
<add name="Access-Control-Allow-Methods" value="GET, POST, PUT, DELETE, OPTIONS" />
</customHeaders>
</httpProtocol>
I dette tilfælde sender JQuery først en OPTIONS request og derefter en GET request og jeg får mit ønskede resultat.
Så mit spørgsmål er hvorfor det går galt når jeg benytter GlobalResponseHeaders men fint når jeg bruger web.config?