要解决Angular/Graphile和CORS之间的问题,你可以采取以下步骤:
在Angular项目的根目录下,找到proxy.conf.json
文件(如果没有,请创建一个)。
在proxy.conf.json
文件中,添加以下内容:
{
"/api": {
"target": "http://localhost:3000", // 替换成Graphile服务器的地址
"secure": false,
"changeOrigin": true,
"logLevel": "debug"
}
}
这里假设Graphile服务器的地址是http://localhost:3000
,你可以根据实际情况进行调整。
package.json
文件中,找到scripts
部分,并在start
命令中添加--proxy-config
选项,如下所示:"scripts": {
"start": "ng serve --proxy-config proxy.conf.json",
...
},
/api
的URL来调用Graphile服务,如下所示:import { HttpClient } from '@angular/common/http';
@Injectable()
export class MyService {
constructor(private http: HttpClient) { }
getData() {
return this.http.get('/api/my-data');
}
}
这里假设Graphile服务的数据接口是/api/my-data
,你可以根据实际情况进行调整。
const express = require('express');
const cors = require('cors');
const app = express();
app.use(cors()); // 允许所有跨域请求
// 其他Graphile相关的配置
app.listen(3000, () => {
console.log('Graphile服务器已启动,监听端口3000');
});
这里使用了cors
中间件来允许所有跨域请求,你可以根据实际情况进行配置。
通过以上步骤,你应该能够解决Angular/Graphile和CORS之间的问题,并且在Angular项目中使用Graphile服务。