Javascript 如何在Shining Server(非Pro)中添加访问控制允许源站?
CORS策略已阻止从源“”访问“”处的XMLHttpRequest:请求的资源上不存在“访问控制允许源”标头 我通过Angular框架调用HttpRequest 我试过了 但我们不能说每个用户都要安装特定的扩展才能使用它 大家都知道,Shinny server pro不是开源的&它将超出我们项目的预算。那么,有什么永久性的解决办法来解决这个问题吗Javascript 如何在Shining Server(非Pro)中添加访问控制允许源站?,javascript,r,angular,cors,shiny-server,Javascript,R,Angular,Cors,Shiny Server,CORS策略已阻止从源“”访问“”处的XMLHttpRequest:请求的资源上不存在“访问控制允许源”标头 我通过Angular框架调用HttpRequest 我试过了 但我们不能说每个用户都要安装特定的扩展才能使用它 大家都知道,Shinny server pro不是开源的&它将超出我们项目的预算。那么,有什么永久性的解决办法来解决这个问题吗 export class DashboardService { private apiUrl = 'http://10.131.12.49:80
export class DashboardService {
private apiUrl = 'http://10.131.12.49:8010/get.me.data?opt=All';
//jsonp: any;
constructor(
// private http: Http,
private http:HttpClient,
) { }
CustReport() {
return this.http.get(this.apiUrl)
}
预期结果:
[{"AVG_THROUGHPUT":1976.0432,"AVG_DCR":0.0919}]
闪亮服务器(非专业版)不支持设置自定义标题。所以,在本例中,您可以创建一个简单的http服务器,将您的请求代理到该服务器。然后使用{path}进行API调用
consthttp=require(“http”);
const httpProxy=require(“http代理”);
constproxy=httpProxy.createProxyServer({});
const server=http.createServer(函数(req,res){
res.oldWriteHead=res.writeHead;
res.writeHead=(状态代码、标题)=>{
res.setHeader(“访问控制允许原点”,“*”);
res.setHeader(“访问控制公开头”,“*”);
res.setHeader(“访问控制允许凭据”,“true”);
res.setHeader(
“访问控制允许方法”,
获取、发布、修补、放置、删除、选项
);
res.oldWriteHead(状态代码、标题);
};
如果(请求方法==“选项”){
书面记录(200);
res.end();
返回;
}
proxy.web(请求、回复、{
//目标到服务器
目标:“http://10.131.12.49:8010"
});
});
监听(5050);
日志(“监听端口5050”)代码>您不能修改服务器。如果我们考虑到您所处的环境,这种方法将不起作用。
我建议您使用后端作为angular应用程序和Shiney服务器之间的中间件。
为此,您可以在后端创建端点,如:
/api/cors?url=http://10.131.12.49:8010/get.me.data?opt=All