Rails-POST请求被Heroku当做GET请求

上下文

项目部署到Heroku后,调用API没有返回相应的响应。我发送POST请求/users,在form中有相应的参数。正常情况下应该成功创建User,然后以JSON格式返回User的数据。

线索

  1. 在Terminal中调用heroku logs得到刚刚Heroku收到的请求是GET方法,而不是POST方法。其中关键log如下:
    at=info method=GET path="/api/ingradients" host=monkey-eat.herokuapp.com request_id=99e3a824-fae6-4a34-9a6d-9e785254beb4 fwd="27.36.201.236" dyno=web.1 connect=0ms service=18ms status=200 bytes=426

过程

  1. 谷歌搜heroku send a post request but show this request is get。我英语表达水平有限,别人是这样提问的:POST request being received as GET request on Heroku
    在StackOverflow找打一个合适的解决办法,原文在这里。
    主要内容的翻译如下:

我的请求发送到http://MYAPP.heroku.com ,然而Heroku应用真正的域名应该是http://MYAPP.herokuapp.com 。当我发送请求到http://MYAPP.heroku.com 时很明显我的请求被移动了.

结果

把API改成正确的域名就解决了。其实在看Heroku的日志时就能看到host不同,以后看错误报告和日志时得一个字一个字地看。

你可能感兴趣的:(Rails-POST请求被Heroku当做GET请求)