相关疑难解决方法(0)

哪个浏览器完全支持REST.意味着Get,Post,PUT和DELETE方法?

哪个浏览器完全支持REST?意味着Get,Post,PUT和DELETE方法?

我理解用于理解PUT和DELETE的rails方式是"_method"隐藏变量之类的

  <form id="form_id" action="" method="PUT" >
   -- form content --
   </form>
Run Code Online (Sandbox Code Playgroud)

方法= "PUT"?

还是我错了?

rest ruby-on-rails

4
推荐指数
1
解决办法
5660
查看次数

Laravel不读取PUT请求的HTTP请求有效负载

所以我在这里磕磕绊绊,因为我已经发现PHP不会从PUT请求中读取HTTP请求体.当Content-Type请求中的标题设置为时application/json,似乎没有任何方法可以获取正文.

我正在使用Laravel,它在Symfony2的HttpFoundation lib之上构建了他们的请求层.

我用jQuery对此进行了一些调试,这些是一些示例请求:

做这样的请求,我可以通过找到内容 Input::getContent()

$.ajax({ 
    url: 'http://api.host/profiles/12?access_token=abcdef', 
    type: 'PUT', 
    data: {"profiles":[{"name":"yolanda ellis","email":"yolanda.ellis12@example.com"}]} 
});
Run Code Online (Sandbox Code Playgroud)

file_get_contents('php://input')虽然我无法获得内容.默认情况下,jQuery将数据发送为application/x-www-form-urlencoded.

当我在请求中传递另一个Content-Type时,它变得更加令人费解.就像Ember-Data一样:

$.ajax({ 
    url: 'http://api.host/profiles/12?access_token=abcdef', 
    type: 'PUT', 
    data: {"profiles":[{"name":"yolanda ellis","email":"yolanda.ellis12@example.com"}]},
    contentType: 'application/json' 
});
Run Code Online (Sandbox Code Playgroud)

当这样做时,数据似乎无处可寻.这意味着我的Ember.js应用程序无法正常使用我的API.

这到底是怎么回事?

编辑

以下是Chrome DevTools中的完整请求示例:http://pastebin.com/ZEjDAsmJ

我发现这是一个特定的Laravel问题.

编辑2:找到答案

似乎我的项目中存在一个依赖项,它从标头与请求一起发送php://input时读取Content-Type: application/json.这会清除流 - 正如@ Mark_1提供的链接所指出的那样 - 当它到达Laravel时它会变空.

依赖是bshaffer/oauth2-server-php

php symfony laravel laravel-4

4
推荐指数
1
解决办法
4832
查看次数

使用jQuery.ajax()自定义HTTP谓词

是否可以使用自定义HTTP VERB(如MERGE)和jQuery.ajax()?我正在与OData API进行交互,该API在向记录发布更新时需要MERGE动词.

我遇到的问题是,当我在ajax()请求中使用"MERGE"时,它不会将数据发送到服务器.它只发送一个没有数据的MERGE请求,因此OData服务拒绝它.

当我将请求更改为PUT时,OData服务发回500错误.

我的选择基本上是弄清楚如何获得"MERGE"调用以发送数据和请求,执行DELETE后跟POST(删除并在每次更新时重新创建记录),或者弄清楚如何修改OData服务接受PUT进行更新.

如果您对如何使jQuery.ajax()发送带有MERGE请求的数据有任何想法,请告诉我.

谢谢,

戴夫

ajax jquery odata

3
推荐指数
1
解决办法
2743
查看次数

RESTful PHP:它如何从客户端到服务器端工作?

我对RESTful PHP上的教程/示例感到困惑.他们中的大多数都在使用框架(例如Slim)并最终成为API,这使我更加困惑.在完全理解如何创建简单的RESTful PHP之前,我想首先避免所有框架和API材料.

我明白那个,

REST,它的核心,就是为工作使用正确的HTTP动词.GET,POST,PUT,DELETE都有意义,如果某些内容被描述为RESTful,那么它真正意味着所涉及的网站/应用程序都遵循这些含义.

而从PHP服务器端,我明白这是怎么我能察觉的REST请求类型,

$_SERVER['REQUEST_METHOD']
Run Code Online (Sandbox Code Playgroud)

但我的主要问题是如何通过URL将这些REST类型(GET,POST,PUT,DELETE)发送到服务器?

例如,从本教程中,

当您希望创建或更新URL标识的资源时,将使用PUT请求.例如,

http://restfulphp.com/clients/robin

然后,

DELETE应该与PUT相反; 当您要删除请求的URL标识的资源时,应该使用它.

http://restfulphp.com/clients/anne

http://restfulphp.com/clients/robin并且http://restfulphp.com/clients/anne相同的干净URL模式.我怎么知道前者是用于PUT而后者是用于DELETE?或者,在那里我应该在表格/ HTML设置来区分它们?

当curl进来时它会变得复杂 - 它与REST网站有什么关系?

从上面的教程,

Once you have cURL installed, type: 
curl -v google.com
Run Code Online (Sandbox Code Playgroud)

我应该在哪里打字?

curl如何帮助我删除或PUT?如何$_SERVER['REQUEST_METHOD']从curl中检测REST类型?

curl -v -X DELETE /clients/anne
Run Code Online (Sandbox Code Playgroud)

curl -v -X PUT -d "some text"
Run Code Online (Sandbox Code Playgroud)

我问的问题可能听起来很愚蠢,但如果有人能帮助我理解这些问题会很棒.

编辑:

Argg PHP cURL- 另一件让我更加困惑的事情!如果我要通过XMLHttpRequest对象发送REST请求类型,为什么还需要它?它似乎是为了与其他API提供程序进行通信,我希望在此阶段避免使用它们.

如果我可以PHP cURL …

php rest curl

3
推荐指数
1
解决办法
1837
查看次数

创建自定义 Http 方法

是否可以通过覆盖该类HttpMethodAttribute并指定我们自己的方法来创建我们自己的 HTTP 方法supportedMethods

事实上,根据情况,我们需要将View作为完整视图与_Layout一起返回,有时我们只需要返回该视图的PartialView。所以我的想法是放置一个自定义属性,例如,[HttpPartial]客户端会根据请求中使用的方法来判断它是否需要完整视图(GET 方法)或部分视图(PARTIAL 方法)。

http-method asp.net-core

3
推荐指数
1
解决办法
2282
查看次数

发布表单时的帖子与放置

在评估表单已提交时,我检查该方法是否发布,而不是获取.我被告知这是一个很好的方式,通过单击提交按钮知道表单已提交,并且它不仅仅是通过在URL中传递数据的脚本提交的.

怎么样的"放"方法.它看起来非常类似于"帖子".是否可以或多或少地使用而不是"邮寄"而不会损失"邮寄"所带来的好处?

php forms security post http-verbs

2
推荐指数
1
解决办法
3129
查看次数

scala中的RESTful http DELETE方法(播放2.0)

我正在使用Play 2.0构建应用程序.
只要Play表单生成器不会生成本机http"删除"请求方法,它应该替换为"Get"或"Post".

@form(routes.Application.delete(id), 'class -> "topRight") {
    <input type="submit" value="Delete this computer" class="btn danger">
}
Run Code Online (Sandbox Code Playgroud)

根据Play示例,"Post"应该用于"删除"目的.虽然使用"Get"非常舒服,因为表单可以用简单的链接替换(特别是在单个页面上有这些链接的列表)

那么有什么理由使用POST来模拟DELETE吗?

rest scala playframework-2.0

2
推荐指数
1
解决办法
3068
查看次数

如何像在Backbone中一样在JQuery中模拟"DELETE"请求方法?

在Backbone中,有一个"DELETE".

this.model.url = '/js/products/123/destroy';
this.model.destroy();
Run Code Online (Sandbox Code Playgroud)

我怎样才能在JQuery中模拟这个?

在我的node.js应用程序中,我专门寻找app.delete.

.   Request URL:http://mydomain.com/js/products/2/destroy
.   Request Method:DELETE
.   Status Code:?200 OK
.   Request Headersview source
.   Accept:application/json, text/javascript, */*; q=0.01
.   Accept-Charset:ISO-8859-1,utf-8;q=0.7,*;q=0.3
.   Accept-Encoding:gzip,deflate,sdch
.   Accept-Language:en-US,en;q=0.8
.   Connection:keep-alive
.   Cookie:connect.sid=s%3ALmcKt2dNgSzfQCyCAcVlPeg6.bFXUPlpuZctDpfN2Gu5mtslVC9nA3FOi908Qe8aExYY
.   Host:mydomain.com
.   Origin:http://mydomain.com
.   Referer:http://mydomain.com/1
.   User-Agent:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_2) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.65 Safari/537.31 AlexaToolbar/alxg-3.1
.   X-Requested-With:XMLHttpRequest
.   Response Headersview source
.   Connection:keep-alive
.   Content-Length:27
.   Content-Type:text/html; charset=utf-8
.   Date:Sun, 14 Apr 2013 02:57:17 GMT
.   X-Powered-By:Express
Run Code Online (Sandbox Code Playgroud)

javascript jquery backbone.js

2
推荐指数
1
解决办法
1290
查看次数

如何从HTML表单调用RESTful服务?

我们使用Grails构建RESTful服务,我们将使用HTML表单从浏览器客户端调用,问题是表单只支持GET和POST,所以我们不确定如何处理PUT和DELETE.

forms rest grails post http

1
推荐指数
1
解决办法
487
查看次数

PUT请求变为GET?

我的应用中的表单包含以下内容:

<form  action="/faculty/update/agxzdGFuZHJld3NqaHNyDQsSB0ZhY3VsdHkYBww" method="PUT" accept-charset="utf-8">
Run Code Online (Sandbox Code Playgroud)

但是,在提交时,请求被视为GET并由处理def get()而不是def put().任何帮助将不胜感激!

编辑: 感谢您的回复.如果我不能使用method="PUT"什么是最好的方法来指导put()我的处理程序类中的方法?我应该在main.py中添加另一个处理程序吗?

html google-app-engine

0
推荐指数
1
解决办法
408
查看次数

php服务器方法发送GET而不是DELETE

我正在尝试实现基本用户注册RESTful api.我有一个html表单registerform.html,deregisterform.html,users.php,register.php和deregister.php,它们都粘贴在下面.

当我在浏览器中访问registerform.html时,我可以填写详细信息,users.php脚本会收到一个POST请求,并回显一个json响应,显示刚刚添加的用户的id号.我的问题是,当我使用deregister表单时,users.php脚本应该重新发送DELETE请求,但实际上是获取GET请求.我一直在寻找这个问题的答案,但我找不到解决方案.

registerform.html

<form action="users.php" method="POST">
    Username: <input type="text" name="uname" /><br />
    FirstName: <input type="text" name="fname" /><br />
    Last Name: <input type="text" name="lname" /><br />
    Date of Birth: <input type="date" name="dob" /><br />
    Telephone: <input type="mob" name="tel" /><br />
    Email: <input type="email" name="email1" /><br />
    Confirm Email: <input type="email" name="email2" /><br />
    Password: <input type="password" name="pass1" /><br />
    Confirm Password: <input type="password" name ="pass2" /><br />
    <input type="submit" value="Register" name="sub" />
    
    <br/><A HREF="login.php">Already Registered? Login Here</A><br/>
</form>  
Run Code Online (Sandbox Code Playgroud)

deregisterform.html

html php rest http http-delete

0
推荐指数
1
解决办法
140
查看次数