angular - 如何使用 Angular http get 方法调用解决跨源问题并获取响应数据?
问题描述
我在角度应用程序中获取 sap odata 时遇到问题。我在我的角度服务调用中使用 sap odata 链接,使用 get 方法尝试访问和获取数据。我已经为代理配置了 proxy.conf.json 以连接 sap 链接,但我遇到了一个问题,即我无法从服务器端获得响应。请找到proxy.config.json文件内容
{
"/sap": {
"target" : "http://server.domain.com:8002",
"secure" : false,
"pathRewrite": {
"^/sap": ""
},
"changeOrigin": true,
"logLevel": "debug"
}
}
以下是我的角度服务电话
constructor(private host: string, private http: Http) {
}
var headers = new Headers();
headers.append('Content-Type', 'application/json');
headers.append('Access-Control-Allow-Methods', 'POST, GET, OPTIONS, PUT');
headers.append('Accept', 'application/json ');
headers.append('Access-Control-Allow-Origin','*');
headers.append('Access-Control-Allow-Headers','application/json');
headers.append('X-Requested-With','XMLHttpRequest');
return this.http.get('http://server.domain.com:8002/sap/opu/odata/sap/ABC_FD_SRV/ID_GEN_Set?sap-client=010', {headers}).pipe(map((response: any) => response));
我可以看到状态正常且代码为 200 的网络,但在响应选项卡中没有响应,只收到空白。但是在服务控制台中我只收到这样的
Response {_body: "", status: 200, ok: true, statusText: "OK", headers: Headers, …}
headers: Headers {_headers: Map(0), _normalizedNames: Map(0)}
ok: true
status: 200
statusText: "OK"
type: 2
url: "http://server.domain.com:8002/sap/opu/odata/sap/ABC_FD_SRV/ID_GEN_Set?sap-client=010"
_body: ""
__proto__: Body
但是当我将 url 粘贴到浏览器中时,我可以看到 xml 格式的数据或 url 更改为 json 格式。
如果我错过了配置代理的任何内容,任何人都可以检查我的代码。
解决方案
推荐阅读
- html - CSS 页眉 - 正文 - 页脚打印在单独的页面上
- mongodb - 如何在一个子文档文档(MongoDB)中减去时间?
- firebase - 从 Firebase Cloud 函数调用 Soap 服务错误
- python - 如何在 Windows 上安装 Morfeusz2 for Python?
- sql-server - 我需要设置 SSMS 以在不同的域上运行 (runas.exe) 如何帮助我的用户识别 ssms.exe 文件的路径?
- maven - Maven:摆脱旧的依赖
- symfony - Symfony Twig - 如何将参数放入替换 - 错误
- html - ul type="circle" 的圆圈周围的红色椭圆
- java - 我关于通过 css 选择器查找元素的 Selenium 的问题
- arrays - Creating an Dynamic Tables in MS-SQL (feasibility)