Javascript 使用POST方法调用RESTAPI将调用GET方法

Javascript 使用POST方法调用RESTAPI将调用GET方法,javascript,rest,firefox-addon,Javascript,Rest,Firefox Addon,我正在开发一个firefox插件,它使用post方法调用RESTAPI。如果使用POST调用RESTAPI,它将持久化数据。如果使用GET方法调用它,它将检索以前保存的数据 但在某些情况下,api返回持久化数据,即使使用POST数据调用它 我不知道我发送数据的方式是否错误,或者api是否有问题。但大多数请求都得到了正确的服务。所以,我不认为插件有什么问题。后端在ROR上 任何帮助都会很好 谢谢 RESTful服务返回(更新的)数据副本以响应帖子的情况并不少见 您真正关心的是,当您发布时,它正在更

我正在开发一个firefox插件,它使用post方法调用RESTAPI。如果使用POST调用RESTAPI,它将持久化数据。如果使用GET方法调用它,它将检索以前保存的数据

但在某些情况下,api返回持久化数据,即使使用POST数据调用它

我不知道我发送数据的方式是否错误,或者api是否有问题。但大多数请求都得到了正确的服务。所以,我不认为插件有什么问题。后端在ROR上

任何帮助都会很好


谢谢

RESTful服务返回(更新的)数据副本以响应帖子的情况并不少见


您真正关心的是,当您发布时,它正在更新远程数据。您可以安全地忽略它是否返回该数据的副本。

如果它是间歇性的,一种可能是服务器和客户端之间存在HTTP缓存,该缓存的实现很差,无法正确区分GET和POST方法。也许它正试图返回一个缓存副本,就好像您发出了GET请求一样,即使您发送了POST请求


如果“在某些情况下”的意思是“对于某些URL”,那么您可能正在发布到类似“/foo”(无尾随斜杠)的URL,服务返回301或302,将客户端重定向到“/foo/”(带尾随斜杠)。大多数用户代理都会将POST更改为GET for 302,有些会更改为GET for 301。如果您可以控制服务器,则应使用303或307。请参见

我是Ruby On Rails开发人员,我可以确认标准做法是重定向到GET controller方法(show),如果POST controller方法(create)中的所有操作都成功,那么问题是远程数据没有更新。如果数据成功持久化,RESTAPI将返回一个类似“{status:ok}”的确认。但在本例中,它只返回先前保存的数据。甚至连我在最近的请求中发送的数据都没有。所以,我认为在后端发生了一些错误,所以它重定向请求以获取控制器。我说得对吗?没有任何信息,这个问题真的无法回答。您应该使用一个扩展来查看外接程序的通信,如。在那里,您将看到您的加载项是否真的发送POST请求。