我试图从另一个主机上的一个网站上的脚本中发送一个浏览器请求到我的Star计数器应用程序。我收到一个错误:
跨源请求被阻止:相同的原产地策略不允许在.这可以通过将资源移动到相同的域或启用CORS来解决。
在星盘应用程序中启用CORS的最佳方法是什么?
发布于 2017-12-14 07:16:45
如果要接受web浏览器中其他主机的请求,则需要实现CORS。这与大多数其他应用程序框架中的方式相同。
要接受来自任何主机的GET
请求或简单的POST
请求(带有标准标头),只需向HTTP处理程序添加响应头Access-Control-Allow-Origin: *
。例如:
Handle.GET("/myapp/some-page", () => {
var page = new Json();
var response = new Response();
response.Resource = page;
response.Headers["Access-Control-Allow-Origin"] = "*";
return response;
});
要接受所有更改服务器上某些内容的请求(POST
、PUT
和DELETE
),您应该在POST
、PUT
和DELETE
处理程序中将OPTIONS
预运行请求处理程序实现为相同的URI。例如:
Handle.PUT("/myapp/some-page", () => {
var page = new Json();
/* some logic ... */
var response = new Response();
response.Resource = page;
response.Headers["Access-Control-Allow-Origin"] = "*";
return response;
});
Handle.OPTIONS("/myapp/some-page", () => {
var response = new Response();
response.Resource = page;
response.Headers["Access-Control-Allow-Origin"] = "*";
response.Headers["Access-Control-Allow-Methods"] = "POST, PUT, GET, OPTIONS";
response.Headers["Access-Control-Allow-Headers"] = "*";
return response;
});
有关CORS的更多信息,请访问:- https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS - https://www.html5rocks.com/en/tutorials/cors/
https://stackoverflow.com/questions/47815320
复制