我尝试将请求从前端(angular2)发送到后端(ruby,sinatra)。 现在,两个服务器都在一台计算机上工作(localhost:3001上的角度,localhost上的sinatra:9292)
我使用auth示例(http://embed.plnkr.co/TIPmK3/?show=preview),并希望将用户数据发送到sinatra。
我在app/_services/authentication.service.ts
中看到了有趣的字符串:
return this.http.post('/api/authenticate', JSON.stringify({ username: username, password: password }))
.map((response: Response) => {...}
但如果在'/api/authenticate'
上替换http://localhost:9292/login
则不会发生任何事情。请求未发送,没有错误。只加载。
任何人都可以帮助我吗?
答案 0 :(得分:1)
请您提供更多详情?
但根据你的问题: 大多数情况下,问题将是" Cross-Origin Request" ,
因此,请检查是否为此设置了标题,
我在后端使用Angular(localhost:3000)和Node(192.168.2.117:4000), 我们遇到了同样的问题,所以我们在节点
中设置了标题 res.setHeader('Access-Control-Allow-Origin','*');
res.setHeader('content-type','application/json');
res.setHeader("Access-Control-Allow-Headers", "Content-Type, Access-Control-Allow-Headers, Token, Timestamp, X-Requested-With, Language-Code");
在那之后,它就像魅力一样。