我使用Rails 4创build了一组服务,我正在使用JavaScript浏览器应用程序。 交叉原点GETS工作正常,但我的POST失败了预检选项检查404错误。 至less,我想这就是发生了什么事情。 这些错误出现在控制台中。 这是Mac上的Chrome 31.0.1650.63。 OPTIONS http://localhost:3000/confessor_requests 404 (Not Found) jquery-1.10.2.js:8706 OPTIONS http://localhost:3000/confessor_requests No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost' is therefore not allowed access. jquery-1.10.2.js:8706 XMLHttpRequest cannot load http://localhost:3000/confessor_requests. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost' is therefore not allowed access. main.html:1 我已经search了高和低的指示启用CORS,我很难过。 通常的build议似乎是把这样的东西放在应用程序控制器,我做了。 […]
我正在开发REST WCF服务和理论上我知道什么时候select什么目的。 GET获取资源 请更新 POST到插入 DELETE删除 但是,如果我们不遵循上述规则,假设插入一条logging,我使用了GET方法,那又有什么缺点呢?
HTTP上的Wikipedia条目列出了以下HTTP请求方法: HEAD:要求响应与对应于GET请求的响应相同,但没有响应主体。 GET:请求指定资源的表示。 POST:提交要处理的数据(例如,从HTML表单)到已标识的资源。 数据包含在请求的正文中。 PUT:上传指定资源的表示。 删除:删除指定的资源。 TRACE:回应收到的请求,以便客户端可以看到中间服务器做了什么(如果有的话)更改或添加。 选项:返回服务器支持指定URL的HTTP方法。 这可以用来通过请求“*”而不是特定资源来检查Web服务器的function。 CONNECT:将请求连接转换为透明的TCP / IP隧道,通常通过未encryption的HTTP代理来实现SSLencryption通信(HTTPS)。 修补程序:用于对资源进行部分修改。 我有兴趣知道(特别是前五种方法): 哪些方法能够(应该?)接收有效载荷 可以接收有效载荷的方法,他们如何接收? 通过URL中的查询string? 通过URL编码的身体? 通过生/分块的身体? 通过以上的([所有/某些])的组合? 我很感激所有的input,如果你可以分享一些(最好是轻的)阅读,那也太好了!
虽然HTTP 1.1规范似乎允许 DELETE请求上的消息体,但似乎表明服务器应该忽略它,因为没有定义它的语义。 4.3消息体 服务器应该读取并转发任何请求的消息体; 如果请求方法不包含实体主体的定义的语义,那么在处理请求时应该忽略消息主体。 我已经回顾了几个关于这个主题的相关讨论,比如: 允许HTTP DELETE请求的实体主体? HTTP请求方法的有效载荷 带请求正文的HTTP GET 大多数讨论似乎都认为可以允许在DELETE上提供消息正文,但通常不推荐使用。 此外,我已经注意到各种HTTP客户端库中的趋势,越来越多的增强function似乎被logging在这些库中以支持DELETE上的请求体。 大多数图书馆似乎有责任,虽然偶尔有一点点的初步阻力。 我的用例需要在DELETE上添加一些必需的元数据(例如删除的“原因”以及删除所需的其他一些元数据)。 我已经考虑了以下选项,其中没有一个看起来完全合适,并且与HTTP规范和/或REST最佳实践一致: 消息体 – 规范表明DELETE上的消息体没有语义值; HTTP客户端不完全支持; 不是标准的做法 自定义HTTP标头 – 要求自定义标头通常违反标准做法 ; 使用它们与我的API的其余部分不一致,其中没有一个需要自定义标题; 此外,没有好的HTTP响应可用于指示不良的自定义标头值(可能完全是一个单独的问题) 标准HTTP头 – 没有标准头是适当的 查询参数 – 添加查询参数实际上改变了被删除的Request-URI; 违反标准做法 POST方法 – (例如POST /resourceToDelete { deletemetadata } )POST不是删除的语义选项; POST实际上代表所需的相反的动作(即POST创build资源下属;但我需要删除资源) 多个方法 – 将DELETE请求分成两个操作(例如,PUT删除元数据,然后删除)将primefaces操作拆分为两个操作,可能会导致不一致的状态。 删除原因(和其他相关的元数据)不是资源表示本身的一部分。 我的第一select可能是使用邮件正文,其次是自定义的HTTP头; 然而,如上所述,这些方法有一些缺点。 是否有任何build议或最佳做法与REST / HTTP标准一起在DELETE请求中包含所需的元数据? 有没有其他的select,我没有考虑?
我想用以下scheme的适当方法devise我的rest端点。 有一个组。 每个组都有一个状态。 该组可以由pipe理员激活或取消激活。 我应该如何devise我的终点? PUT /groups/api/v1/groups/{group id}/status/activate 要么 PATCH /groups/api/v1/groups/{group id} with request body like {action:activate|deactivate}
在REST风格的编程中,我们应该使用HTTP方法作为构build块。 我有点困惑,虽然哪些方法匹配经典的CRUD方法。 GET / Read和DELETE / Delete足够明显。 但是,PUT / POST有什么区别呢? 它们是否与创build和更新一一对应?
我最近才开始介入PHP / AJAX / jQuery,在我看来,这些技术的重要组成部分是POST和GET 。 首先, POST和GET什么区别? 通过实验,我知道GET将返回variables及其值附加到URLstring website.com/directory/index.php?name=YourName&bday=YourBday 但POST不。 那么,这是唯一的区别,还是有特定的规则或惯例使用一个或另一个? 其次,我还在PHP之外看到了POST和GET :也是在AJAX和jQuery中。 POST和GET如何在这三个之间有所不同? 他们是相同的想法,相同的function,只是利用不同?