标签: http-method

Fine Grained rest HTTP动词浏览器支持

是否有关于浏览器如何实际支持其余http动词(尤其是PUT,DELETE)的数据.这个问题主要是由于许多来源(例如这个stackoverflow答案)告知大多数浏览器不支持PUT和DELETE但不说哪个.

Rails使用客户端上的补丁解决了这个问题,并在服务器上反转补丁,但我想知道,例如,哪些浏览器不需要这样的黑客攻击.

rest http cross-browser http-method

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

Spring MVC可以处理来自POST和GET以外的HTML表单的请求吗?

Spring 3 MVC支持所有4种RESTful方法:GET,POST,PUT和DELETE.但它的视图技术是否在表格上支持它们?如果没有,标签中method属性的真正用途是form:form什么?

我尝试在表单上使用PUT方法:

<form:form action="/myaction" method="PUT">
   ...
</form:form>
Run Code Online (Sandbox Code Playgroud)

生成的HTML是:

<form id="command" action="/myaction" method="post">
   <input type="hidden" name="_method" value="PUT"/>
   ...
</form>
Run Code Online (Sandbox Code Playgroud)

很明显,因为除了GET和POST之外,大多数浏览器都不支持其他方法.但Spring可以通过附加input名称_method和值来处理它METHOD_NAME.可以?

当我将指定的表单发送到带注释的控制器方法时

@RequestMapping(method=RequestMethod.PUT)
Run Code Online (Sandbox Code Playgroud)

它声称,POST不支持该请求方法.但为什么POSTPUT呢?在引擎盖下实际发生了什么?

forms spring spring-mvc http-method

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

用于小动作的HTTP方法,例如(向上)投票

动词对于CRUD动作非常简单.

什么是正确的HTTP动词只执行一个动作,像upvote?

也许这说明数据建模更多?是upvote资源还是仅属性?我对此不确定.假设它通过调用#upvote模型直接修改资源.

例如,如果我在SO上提出一个问题,那么该动作应该理想地使用什么动词?我正在以部分方式修改资源(PATCH?),但同时,我不想指定新值,因为我可能会遇到并发问题,因此最好由数据库管理.换句话说,我们要求服务器对资源执行增量操作.那是否涵盖PATCH

我在那里看到过类似的问题,但他们的案例指出通过将作业请求视为要创建的对象来创建新资源.我们在这里是一样的吗?

如果PATCH方法真的合适,它会包含什么?

rest http http-method

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

ASP.NET Web API - 404删除

我试图Delete在Web API控制器上实现一个方法.但是,我总是得到一个404 - Not Found.在这一点上,我有GET,POST和PUT方法正常工作.我一直在阅读关于同一问题的其他一些SO帖子 - 他们都没有工作.

控制器行动

public virtual HttpResponseMessage Delete(string customerId)
{
    adapter.RemoveCustomer(customerId);
    return Request.CreateResponse(HttpStatusCode.OK, "The customer was deleted.");
}
Run Code Online (Sandbox Code Playgroud)

AJAX请求

function remove(customer, success, error) {
    var url = '/api/Customer';
    var data = JSON.stringify({ 'customerId': customer.CustomerId });
    $.ajax({
        url: url,
        type: 'DELETE',
        data: data,
        contentType: 'application/json'
    })
    .done(function (data, textStatus, handler) {
        success(data);
    })
    .fail(function (handler, textStatus, errorThrown) {
        error(errorThrown);
    });
};
Run Code Online (Sandbox Code Playgroud)

Web.Config

这是我的web.config档案.除了模块部分,一切都与我创建项目时相同:

<system.webServer>
    <validation validateIntegratedModeConfiguration="false" />
    <!--<modules runAllManagedModulesForAllRequests="true"></modules>--> …
Run Code Online (Sandbox Code Playgroud)

http-method http-status-code-404 http-delete asp.net-web-api

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

为什么跨源HEAD请求需要进行预检检查?

我正在阅读关于CORS请求的规范,我发现了有关预检请求的内容:

这些是对具有除GET之外的HTTP请求方法的非同一原始URL的请求,首先需要使用预检结果缓存条目或预检请求进行授权.

我曾经认为预检请求的目的是在创建请求之前检查是否允许请求,以防它(非法)更改服务器状态.

但是HEAD和OPTIONS不会修改服务器状态.我必须误解预检检查的原因.

为HEAD和OPTIONS进行预检检查但不是GET的目的(也就是原因,动机或理由)是什么?GET有什么特别之处?

cross-domain http-method cors preflight

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

如何在AWS Lambda中获取HTTP方法?

在AWS Lambda代码中,如何获取来自AWS Gateway API的HTTP请求的HTTP方法(例如GET,POST ...)?

我从文档中了解到context.httpMethod是解决方案.

但是,我无法让它发挥作用.

例如,当我尝试添加以下3行时:

    if (context.httpMethod) {
            console.log('HTTP method:', context.httpMethod)
    }
Run Code Online (Sandbox Code Playgroud)

进入"microservice-http-endpoint"蓝图的AWS示例代码如下:

exports.handler = function(event, context) {

    if (context.httpMethod) {
        console.log('HTTP method:', context.httpMethod)
    }

    console.log('Received event:', JSON.stringify(event, null, 2));

    // For clarity, I have removed the remaining part of the sample
    // provided by AWS, which works well, for instance when triggered 
    // with Postman through the API Gateway as an intermediary.
};
Run Code Online (Sandbox Code Playgroud)

我从来没有在日志中有任何东西因为httpMethod总是空的.

http-method amazon-web-services aws-lambda aws-api-gateway

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

是否有一个表显示浏览器的HTTP方法支持

可能重复:
大多数Web浏览器中是否提供PUT,DELETE,HEAD等方法?

我已经看到很多东西,通常说"不是所有的浏览器都支持所有的HTTP方法"等,但有没有一个很好的表格,具体显示哪些HTTP方法是由浏览器分解的支持?

我在SO上看到了这个问题,但这不是我正在寻找的答案: Fine Grained rest HTTP动词浏览器支持

http cross-browser http-method

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

在Html.BeginForm()中使用DELETE表单方法?

我想尽可能使用适当的HTTP方法.在这种情况下,当单击按钮删除某些内容时,我想使用该属性触发控制器操作[HttpDelete].但是,我似乎无法使用此方法创建表单 - 使用Razor语法.该FormMethod枚举没有一个选项Delete并执行以下操作不会覆盖它:

@using (Html.BeginForm("Order", "Users", FormMethod.Post, new { method = "DELETE" }))
Run Code Online (Sandbox Code Playgroud)

搜索解决方案没有产生,没有人这样做吗?我知道我可以使用POST,但这不是HTTP删除方法的重点吗?

http-method razor asp.net-mvc-3 http-delete

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

使用不同的HTTP方法时是否存在性能差异?

我知道HTTP方法是如何工作的以及它们的设计方式,但我很想知道在使用数据时,某些方法是否比其他方法更快.
在我正在研究的团队中,我注意到很多JQuery ajax请求,如下所示:

$.ajax({url: "../dir/someFile.json", method: 'post', dataType: 'json',
    error: function(...){ ... },
    success: function(...){ ... }       
});
Run Code Online (Sandbox Code Playgroud)

我显然使用'get'方法,因为没有数据发送到此请求.这可能发生在队友复制和粘贴代码时.这也很好,似乎没有充分的理由将其改为'get'.

我认为在这种情况下使用'get'方法会更快,但我没有找到任何肯定的来源.

ajax jquery http-method

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

HTTP 方法是否区分大小写?

问一个与HTTP 标头是否区分大小写相关的问题,如果 HTTP 方法区分大小写,大多数服务器如何处理“get”或“post”与“GET”或“POST”?

例如,看起来 Apache httpd 返回“501 Method Not Implemented”以响应小写方法,这正是我所期望的。

http http-method

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