我正在开发一个firefox插件,它使用post方法调用rest api。如果使用POST调用数据,其余的api将保留数据。如果使用GET方法调用它,它将检索先前持久存储的数据。
但在某些情况下,即使使用POST数据调用api,api也会返回持久数据。
我对发送数据的方式是错误还是api有问题感到困惑。但大多数请求都得到了正确的服务。所以,我认为插件没有问题。后端是ROR。
任何帮助都会很棒!
感谢。
答案 0 :(得分:2)
RESTful服务返回(更新的)数据副本以响应POST的情况并不少见。
您真正关心的是它在POST时更新远程数据。无论是否返回该数据的副本,您都可以安全地忽略它。
答案 1 :(得分:0)
如果它是间歇性的,一种可能性是服务器和客户端之间存在HTTP缓存,实现不当,并且无法在GET和POST方法之间正确区分。也许它正在尝试返回一个缓存副本,就好像你发出了一个GET请求,即使你发送了一个POST请求。
如果“在某些情况下”意味着“对于某些URL”,那么您可能会POST到像“/ foo”这样的URL(没有尾部斜杠),并且服务返回301或302,重定向客户端到“/ foo /”(带斜杠)。大多数用户代理将POST更改为GET为302,有些将为301.如果您可以控制服务器,则应使用303或307。见http://tools.ietf.org/html/draft-ietf-httpbis-p2-semantics-16#section-8.3.3