diff --git a/Pepperdash Core/Pepperdash Core/PepperDash_Core.csproj b/Pepperdash Core/Pepperdash Core/PepperDash_Core.csproj
index 510d978..ec6346d 100644
--- a/Pepperdash Core/Pepperdash Core/PepperDash_Core.csproj
+++ b/Pepperdash Core/Pepperdash Core/PepperDash_Core.csproj
@@ -93,7 +93,7 @@
-
+
diff --git a/Pepperdash Core/Pepperdash Core/Web/RequestHandlers/DefaultRequestHandler.cs b/Pepperdash Core/Pepperdash Core/Web/RequestHandlers/DefaultRequestHandler.cs
new file mode 100644
index 0000000..93cfae0
--- /dev/null
+++ b/Pepperdash Core/Pepperdash Core/Web/RequestHandlers/DefaultRequestHandler.cs
@@ -0,0 +1,17 @@
+using Crestron.SimplSharp.WebScripting;
+
+namespace PepperDash.Core.Web.RequestHandlers
+{
+ ///
+ /// Web API default request handler
+ ///
+ public class DefaultRequestHandler : WebApiBaseRequestHandler
+ {
+ ///
+ /// Constructor
+ ///
+ public DefaultRequestHandler()
+ : base(true)
+ { }
+ }
+}
\ No newline at end of file
diff --git a/Pepperdash Core/Pepperdash Core/Web/RequestHandlers/DefaultRequestRequestHandler.cs b/Pepperdash Core/Pepperdash Core/Web/RequestHandlers/DefaultRequestRequestHandler.cs
deleted file mode 100644
index e052eb3..0000000
--- a/Pepperdash Core/Pepperdash Core/Web/RequestHandlers/DefaultRequestRequestHandler.cs
+++ /dev/null
@@ -1,10 +0,0 @@
-using Crestron.SimplSharp.WebScripting;
-
-namespace PepperDash.Core.Web.RequestHandlers
-{
- ///
- /// Web API default request handler
- ///
- public class DefaultRequestRequestHandler : WebApiBaseRequestHandler
- {}
-}
\ No newline at end of file
diff --git a/Pepperdash Core/Pepperdash Core/Web/RequestHandlers/WebApiBaseRequestHandler.cs b/Pepperdash Core/Pepperdash Core/Web/RequestHandlers/WebApiBaseRequestHandler.cs
index 6d4b41c..a73abd1 100644
--- a/Pepperdash Core/Pepperdash Core/Web/RequestHandlers/WebApiBaseRequestHandler.cs
+++ b/Pepperdash Core/Pepperdash Core/Web/RequestHandlers/WebApiBaseRequestHandler.cs
@@ -10,12 +10,15 @@ namespace PepperDash.Core.Web.RequestHandlers
public abstract class WebApiBaseRequestHandler : IHttpCwsHandler
{
private readonly Dictionary> _handlers;
+ protected readonly bool EnableCors;
///
/// Constructor
///
- protected WebApiBaseRequestHandler()
+ protected WebApiBaseRequestHandler(bool enableCors)
{
+ EnableCors = enableCors;
+
_handlers = new Dictionary>
{
{"CONNECT", HandleConnect},
@@ -30,6 +33,14 @@ namespace PepperDash.Core.Web.RequestHandlers
};
}
+ ///
+ /// Constructor
+ ///
+ protected WebApiBaseRequestHandler()
+ : this(false)
+ {
+ }
+
///
/// Handles CONNECT method requests
///
@@ -37,7 +48,7 @@ namespace PepperDash.Core.Web.RequestHandlers
protected virtual void HandleConnect(HttpCwsContext context)
{
context.Response.StatusCode = 501;
- context.Response.StatusDescription = "Not Implemented";
+ context.Response.StatusDescription = "Not Implemented";
context.Response.End();
}
@@ -48,7 +59,7 @@ namespace PepperDash.Core.Web.RequestHandlers
protected virtual void HandleDelete(HttpCwsContext context)
{
context.Response.StatusCode = 501;
- context.Response.StatusDescription = "Not Implemented";
+ context.Response.StatusDescription = "Not Implemented";
context.Response.End();
}
@@ -142,7 +153,13 @@ namespace PepperDash.Core.Web.RequestHandlers
return;
}
+ if (EnableCors)
+ {
+ context.Response.Headers.Add("Access-Control-Allow-Origin", "*");
+ context.Response.Headers.Add("Access-Control-Allow-Methods", "POST, GET, OPTIONS");
+ }
+
handler(context);
- }
+ }
}
}
\ No newline at end of file
diff --git a/Pepperdash Core/Pepperdash Core/Web/WebApiServer.cs b/Pepperdash Core/Pepperdash Core/Web/WebApiServer.cs
index 43efb5b..f2f8464 100644
--- a/Pepperdash Core/Pepperdash Core/Web/WebApiServer.cs
+++ b/Pepperdash Core/Pepperdash Core/Web/WebApiServer.cs
@@ -100,7 +100,7 @@ namespace PepperDash.Core.Web
if (_server == null) _server = new HttpCwsServer(BasePath);
_server.setProcessName(Key);
- _server.HttpRequestHandler = new DefaultRequestRequestHandler();
+ _server.HttpRequestHandler = new DefaultRequestHandler();
CrestronEnvironment.ProgramStatusEventHandler += CrestronEnvironment_ProgramStatusEventHandler;
CrestronEnvironment.EthernetEventHandler += CrestronEnvironment_EthernetEventHandler;