Cross-origin Request Blocked Microsoft Azure Function
Solution 1:
As of January 2019 @Founder's answer didn't work for me - Azure strips out any CORS headers I try to add manually in code. I had to add the desired origins using the CORS settings module. I could see that the Op made reference to this module in his question, but it took me a while to find where it was located. Eventually found it at Function Apps, click your Function app name, go to Platform features tab, then CORS under API over the right-hand side. Not sure why it didn't work for Op, but adding my origins in here worked for me when adding in code would not.
I did read somewhere that disabling this setting will allow manual adding of CORS headers in code to work, but the setting is enabled by default and I couldn't see any way to disable it (it had 3 Azure domains in there by default, perhaps removing those would disable it...)
Solution 2:
I had to add the origin on the response to get it to work.
When I'm returning the response I call
return Response.CreateResponse(req, HttpStatusCode.OK, result);
publicstatic HttpResponseMessage CreateResponse<T>(HttpRequestMessage req, HttpStatusCode statusCode, T result)
{
var response = req.CreateResponse(statusCode, result);
if (req.Headers.Contains("Origin"))
{
var origin = req.Headers.GetValues("Origin").FirstOrDefault();
response.Headers.Add("Access-Control-Allow-Credentials", "true");
response.Headers.Add("Access-Control-Allow-Origin", origin);
response.Headers.Add("Access-Control-Allow-Methods", req.Method + ", OPTIONS");
}
return response;
}
Post a Comment for "Cross-origin Request Blocked Microsoft Azure Function"