我正在开发一个需要客户端进行api调用的项目 我的 rails应用程序和它返回XML而没有任何http标题信息。
目前正在返回:
HTTP/1.1 200 OK
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: Fri, 01 Jan 1990 00:00:00 GMT
Content-Type: application/xml; charset=
X-Ua-Compatible: IE=Edge
X-Request-Id: c5602cd7eb23ca8137bef8bb1f0a4f8a
X-Runtime: 0.027900
Server: WEBrick/1.3.1 (Ruby/1.9.3/2013-11-22)
Date: Wed, 18 Jun 2014 05:27:48 GMT
Content-Length: 529
Connection: Keep-Alive
Set-Cookie: _session_id=a8039d615674feec206e6c55a7a7afc8; path=/;
HttpOnly
<?xml version="1.0" encoding="UTF-8"?>
<cXML>
<Response>
<Status code="200" text="OK"/>
<StartPage>
<URL>http://localhost:3000/foobar/BAh7DDoNYmFza2V0aWRJI...
</StartPage>
</Response>
</cXML>
任何人都可以帮助删除控制器中的所有http标头或任何 配置?在下面的部分。
HTTP/1.1 200 OK
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: Fri, 01 Jan 1990 00:00:00 GMT
Content-Type: application/xml; charset=
X-Ua-Compatible: IE=Edge
X-Request-Id: c5602cd7eb23ca8137bef8bb1f0a4f8a
X-Runtime: 0.027900
Server: WEBrick/1.3.1 (Ruby/1.9.3/2013-11-22)
Date: Wed, 18 Jun 2014 05:27:48 GMT
Content-Length: 529
Connection: Keep-Alive
Set-Cookie: _session_id=a8039d615674feec206e6c55a7a7afc8; path=/;
HttpOnly
我现在正在使用nginx。
我有一些人说这是一种无意义的请求,因为HTTP服务器由 定义使用标题来相互交谈。但我也被告知W3不这么认为。
http://www.w3.org/Protocols/rfc2616/rfc2616-sec4.html#sec4
我还搜索了几个小时尝试其他解决方案来改变我的rails控制器而没有任何成功。最后的手段是否可能在Nginx中更改配置并且不会影响整个rails应用程序而不仅仅是api调用,还是有办法单独拨打一个电话?
提前致谢。
Ť
答案 0 :(得分:1)
这是一个无意义的请求,是的。您可以使用HttpHeadersMore模块删除大多数响应标头。这样的事情应该这样做:
location /your/api/path {
more_clear_headers '*';
}
但是,您无法删除Connections标头without patching nginx。即使你可以,你也无法删除响应的第一行(在这种情况下为“HTTP / 1.1 200 OK”)。没有该行,它不是HTTP响应。您将很难说服HTTP服务器发送非HTTP响应。
为了得到您所描述的内容,我认为您需要一个通过裸TCP套接字进行通信的自定义服务器。 This tutorial可能会帮助你。或者您可以在node.js(或其他工具)中实现应用程序的那部分?