我正在开发一个firefox插件,它使用post方法调用rest api。如果使用POST调用rest api,它将持久化数据。如果使用GET方法调用它,它将检索先前持久化的数据。
但在某些情况下,即使使用POST数据调用,api也会返回持久化数据。
我很困惑,是我发送数据的方式错了,还是api出了问题。但大多数请求都得到了正确的处理。所以,我不认为插件有什么问题。Te后端在ROR上。
任何帮助都是最好的!
谢谢。
发布于 2011-09-21 11:15:18
RESTful服务在响应POST时返回(更新的)数据副本的情况并不少见。
你真正关心的是当你发布的时候它会更新远程数据。无论它是否返回该数据的副本,您都可以放心地忽略它。
发布于 2011-09-23 23:45:24
如果它是间歇性的,一种可能是在您的服务器和客户端之间有一个HTTP缓存,该缓存实现得很差,并且不能正确区分GET和POST方法。即使您发送了POST请求,它也可能试图返回一个缓存副本,就好像您发出了GET请求一样。
相反,如果“在某些情况下”意味着“对于某些网址”,那么你有可能正在POST到一个类似"/foo“的网址(没有尾随斜杠),并且服务返回301或302,将客户端重定向到"/foo/”(带有尾随斜杠)。大多数用户代理会将POST更改为302的GET,有些用户代理将更改为301的GET。如果您可以控制服务器,则应该使用303或307。请参阅https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-p2-semantics-16#section-8.3.3
https://stackoverflow.com/questions/7494151
复制相似问题