【问题标题】:Server App on Heroku is not accessibeHeroku 上的服务器应用程序无法访问
【发布时间】:2015-08-18 16:21:31
【问题描述】:

您好,我们在 Heroku 上有一个 Ruby on Rails 服务器应用程序,但是当我向它发送 post 请求时,我总是收到 400 Bad Request 响应。我已经搜索了其他 400 个错误,但没有一个与我们的问题有关。我们收到的 HTTP 响应如下所示:

HTTP/1.1 400 错误请求

服务器:牛仔

日期:格林威治标准时间 2015 年 8 月 14 日星期五 21:55:25

内容长度:0

我发送的发布请求如下所示:

POST http://ourapp.herokuapp.com/api/v1/requestsHTTP/1.0

接受语言:en-us

接受:文本/纯文本

内容类型:application/x-www-form-urlencoded

内容长度:38

连接:关闭

request=600&key=&newKey=danasecretkey&

抱歉,我必须在每个标题后添加空行,否则会显示在一行中。

如果我创建一个 HTML 表单来发送数据,则没有问题。当我尝试从我们的文件服务器发送相同的请求时,我得到了错误。我尝试使用所有正确请求标题的预检请求,但收到相同的 400 Bad Request 错误。

有人对我可能做错了什么有任何建议吗?

【问题讨论】:

  • 检查您的服务器日志。

标签: ruby-on-rails http heroku


【解决方案1】:

好吧,只是根据你所说的猜测:

request=600&key=&newKey=danasecretkey&

您的控制器中可能有类似params.require(:key) 的内容。而您的请求缺少该参数。

Rails 会以 400 状态响应,以防您错过了一些 require'd 参数。

【讨论】:

  • 感谢 EugZol。我无权访问 Rails 服务器或 Heroku。另一位开发商正在关注这一点。我已向他发送了一封电子邮件以验证参数是否匹配。这种事情往往最终变成那样愚蠢的事情。有时长时间盯着同一件事会让人很难看到明显的东西。如果这解决了它,我不介意尴尬。再次感谢。达纳
【解决方案2】:

解决的问题是从 HTTP1.0 切换到 HTTP1.1,添加主机标头并更改 uri。

日志没有告诉我们任何信息,而且参数没问题。问题在于没有完全掌握 HTTP 标头要求。

【讨论】:

  • 没问题。您应该将自己的答案标记为已接受(旁边的 V 形标记),以向人们表明您已解决您的请求。
  • 是的。它不会让我将自己的答案设置为接受,直到明天。谢谢,达娜
猜你喜欢
  • 1970-01-01
  • 2019-09-27
  • 2019-02-02
  • 2018-08-21
  • 2021-09-24
  • 2015-12-06
  • 1970-01-01
  • 1970-01-01
  • 2013-07-17
相关资源
最近更新 更多