如何使用Angular 2创建跨域请求?
你能举个例子吗?
像在localhost:3000和localhost:8000跨域之间的请求
发布于 2016-01-14 20:52:05
事实上,对于跨域请求,在Angular2中没有什么可做的。CORS是浏览器原生支持的东西。此链接可以帮助您了解它是如何工作的:
简而言之,在跨域请求的情况下,浏览器会自动在请求中添加一个Origin
头部。有两种情况:
text/plain
、application/x-www-form-urlencoded
和multipart/form-data
.因此,实际上,大多数工作都必须在服务器端完成,以返回CORS头。主要的是Access-Control-Allow-Origin
。
200 OK HTTP/1.1
(...)
Access-Control-Allow-Origin: *
要调试此类问题,可以在浏览器中使用开发人员工具(“网络”选项卡)。
关于Angular2,只需像使用任何其他请求一样使用Http
对象(例如相同的域):
return this.http.get('https://angular2.apispark.net/v1/companies/')
.map(res => res.json()).subscribe(
...
);
发布于 2016-07-04 17:48:14
对我来说,这是另一个问题。这对一些人来说可能是微不足道的,但我花了一段时间才弄明白。所以这个答案可能会对一些人有帮助。
我将我的API_BASE_URL
设置为localhost:58577
。在第100万次读取错误消息后,硬币掉了下来。问题出在它只支持HTTP
和其他一些协议的部分。我必须更改API_BASE_URL
,使其包含协议。因此,将API_BASE_URL
更改为http://localhost:58577
可以完美地工作。
发布于 2017-01-27 00:59:26
这在客户端是无能为力的。我在服务器端的控制器中添加了@CrossOrigin
,它可以正常工作。
@RestController
@CrossOrigin(origins = "*")
public class MyController
请参考docs。
线路
https://stackoverflow.com/questions/34790051
复制相似问题