我的团队使用grunt服务进行实时重新编译和重新加载我们的webapp,以便我们可以近乎实时地编辑和查看更改。我们的应用程序使用AngluarJS,因此站点上的所有操作都通过对服务器的API调用进行。
grunt服务器在localhost:9000
上运行,但管理实际数据的服务器是用Python编写的,并在localhost:8000
运行。因此,我们最终遇到CORS在“不同域”上遇到API的困难。现在的解决方案是打开一个新的Chrome实例,并设置--disable-web-security
标记,但出于各种原因,我们需要远离它。
我们是否可以通过同一个域获取grunt服务和Python服务,或以其他方式消除此CORS问题?
答案 0 :(得分:2)
已经有这方面的教程,希望这有帮助,你可以使用代理:
https://github.com/drewzboto/grunt-connect-proxy
教程:
https://github.com/saschakiefer/generator-openui5/wiki/How-to-setup-a-proxy-to-avoid-CORS-issues
取自页面:
connect: {
options: {
port: 8080,
livereload: 35729,
hostname: "localhost",
base: "."
},
proxies: {
context: "/Northwind", // When the url contains this...
host: "services.odata.org", // Proxy to this host
changeOrigin: true
},
livereload: {
options: {
middleware: function(connect, options) {
if (!Array.isArray(options.base)) {
options.base = [options.base];
}
// Setup the proxy
var middlewares = [require("grunt-connect-proxy/lib/utils").proxyRequest];
// Serve static files.
options.base.forEach(function(base) {
middlewares.push(connect.static(base));
});
return middlewares;
}
}
}
}