【问题标题】:Post request from angular2 to backend从 angular2 向后端发布请求
【发布时间】:2017-03-29 18:01:00
【问题描述】:

我尝试将请求从前端(angular2)发送到后端(ruby,sinatra)。 现在,两台服务器都在一台计算机上工作(localhost:3001 上的角度,localhost:9292 上的 sinatra)

我使用 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) => {...}

但是,如果在 http://localhost:9292/login 上替换 '/api/authenticate',则不会发生任何事情。请求未发送,没有错误。仅加载。

谁能帮帮我?

【问题讨论】:

    标签: angular


    【解决方案1】:

    您能提供更多详细信息吗?

    但根据您的问题: 大多数情况下,问题将是“跨域请求”,

    所以请检查您是否为此设置了标题,

    我在前端使用 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"); 
    

    在那之后,它就像魅力一样工作。

    【讨论】:

    • 感谢您的回答。是的,我在后端设置了 headers['Access-Control-Allow-Origin'] = '*',但后端没有来自 Angular 的请求。
    • 请您尝试使用 this.http.post('localhost:9292/api/authenticate', ......
    • 它不起作用。我的后端无法在这条路线上接受请求,但现在,登录页面在我点击登录后没有休眠。并且在后端的日志中没有请求。
    • 如果在后端设置 headers['Access-Control-Allow-Origin'] = '*' 并使用像这样的示例angular.io/docs/ts/latest/guide/server-communication.html
    猜你喜欢
    • 2017-09-26
    • 1970-01-01
    • 2019-06-08
    • 2019-07-17
    • 1970-01-01
    • 1970-01-01
    • 2016-02-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多