Setup Precondition
You need a local or public HTTP server (e.g. Apache, nginx, Microsoft IIS, Node.js, etc.) to host your JSON files. Alternatively, you can use your NAS (Network Attached Storage) server or device that supports web server functionality. The HTTP server must support CORS (Cross-Origin Resource Sharing) to ensure that the JSON files can be loaded from each platform. This should not be a problem, because almost any HTTP server can be configured to support CORS. However, depending on the used HTTP server, the CORS support is configured differently. Please search the web for how it is done for your server. The next examples show how a basic CORS support can look like.
via Apache and the .htaccess
file[edit]
Header set Access-Control-Allow-Origin "*"
Header set Access-Control-Allow-Headers "Origin, Content-Type, Accept"
Header set Access-Control-Allow-Methods "GET, OPTIONS"
#...
via PHP[edit]
<?php
header('Access-Control-Allow-Origin: *');
header('Access-Control-Allow-Headers: Origin, Content-Type, Accept');
header('Access-Control-Allow-Methods: GET, OPTIONS');
//...
via Java and the HttpServlet
interface[edit]
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
resp.setHeader("Access-Control-Allow-Origin", "*");
resp.setHeader("Access-Control-Allow-Headers", "Origin, Content-Type, Accept");
resp.setHeader("Access-Control-Allow-Methods", "GET, OPTIONS");
//...
}
via Node.js and the http
library[edit]
const server = http.createServer((req, res) => {
res.setHeader("Access-Control-Allow-Origin", "*");
res.setHeader("Access-Control-Allow-Headers", "Origin, Content-Type, Accept");
res.setHeader("Access-Control-Allow-Methods", "GET, OPTIONS");
//...
});
via Node.js and the http-server
package[edit]
http-server --cors
via Apache Tomcat and the web.xml
file[edit]
<!-- ... -->
<filter>
<filter-name>CorsFilter</filter-name>
<filter-class>org.apache.catalina.filters.CorsFilter</filter-class>
<init-param>
<param-name>cors.allowed.origins</param-name>
<param-value>*</param-value>
</init-param>
<init-param>
<param-name>cors.allowed.headers</param-name>
<param-value>Origin, Content-Type, Accept</param-value>
</init-param>
<init-param>
<param-name>cors.allowed.methods</param-name>
<param-value>GET, OPTIONS</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>CorsFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<!-- ... -->
via Microsoft IIS and the web.config
file[edit]
<!-- ... -->
<system.webServer>
<cors enabled="true">
<add origin="*">
<allowHeaders>
<add header="Origin" />
<add header="Content-Type" />
<add header="Accept" />
</allowHeaders>
<allowMethods>
<add method="GET" />
<add method="OPTIONS" />
</allowMethods>
</add>
</cors>
</system.webServer>
<!-- ... -->
For more information about CORS, please visit https://en.wikipedia.org/wiki/Cross-origin_resource_sharing.