相关疑难解决方法(0)

如何在jQuery Ajax调用之后管理重定向请求

我正在使用$.post()Ajax调用servlet,然后使用生成的HTML片段替换div用户当前页面中的元素.但是,如果会话超时,服务器会发送重定向指令以将用户发送到登录页面.在这种情况下,jQuery正在用div登录页面的内容替换元素,迫使用户的目光确实见证了罕见的场景.

如何使用jQuery 1.2.6从Ajax调用管理重定向指令?

javascript ajax jquery redirect

1319
推荐指数
26
解决办法
84万
查看次数

资源已存在时POST的HTTP响应代码

我正在构建一个允许客户端存储对象的服务器.这些对象在客户端完全构造,完整的对象ID对于对象的整个生命周期是永久的.

我已经定义了API,以便客户端可以使用PUT创建或修改对象:

PUT /objects/{id} HTTP/1.1
...

{json representation of the object}
Run Code Online (Sandbox Code Playgroud)

{id}是对象ID,因此它是Request-URI的一部分.

现在,我也在考虑允许客户端使用POST创建对象:

POST /objects/ HTTP/1.1
...

{json representation of the object, including ID}
Run Code Online (Sandbox Code Playgroud)

由于POST意味着"附加"操作,我不知道如果对象已经存在该怎么做.我应该将请求视为修改请求还是应该返回一些错误代码(哪个)?

rest http

766
推荐指数
12
解决办法
31万
查看次数

浏览器缓存HTTP 301s多长时间?

我正在调试HTTP 301永久重定向的问题.经过快速测试后,似乎Safari在重启时清除了301s的缓存,但Firefox却没有.

IE,Chrome,Firefox和Safari什么时候清除301s的缓存?

更新:例如,如果我想重定向example1.comexample2.com,但我不小心将其设置为重定向到example3.com,这是一个问题.我可以纠正错误,但是example1.com在此期间访问过的任何人都会将错误的重定向缓存到example3.com,因此他们将无法访问example1.com或者example2.com直到他们的缓存被清除.经过调查,我发现,没有Cache-ControlExpires标题设置.不正确的301响应的标头将是这样的:

HTTP/1.1 301 Moved Permanently
Date: Wed, 27 Feb 2013 12:05:53 GMT
Server: Apache/2.2.21 (Unix) DAV/2 PHP/5.3.8
X-Powered-By: PHP/5.3.8
Location: http://example3.com/
Content-Type: text/html
Run Code Online (Sandbox Code Playgroud)

我自己的测试表明:

  • IE7,IE8,Android 2.3.4根本不缓存.
  • Firefox 18.0.2,Safari 5.1.7(在Windows 7上)和Opera 12.14全部缓存,并在浏览器重启时清除缓存.
  • IE10和Chrome 25缓存,但不清楚浏览器重启,那么什么时候会清除?

http http-status-code-301

344
推荐指数
12
解决办法
16万
查看次数

400对422对数据POST的响应

我正在尝试使用我正在处理的"类似REST"的API来确定在不同场景下返回的正确状态代码.假设我有一个终点允许以JSON格式进行POST'ing购买.它看起来像这样:

{
    "account_number": 45645511,
    "upc": "00490000486",
    "price": 1.00,
    "tax": 0.08
}
Run Code Online (Sandbox Code Playgroud)

如果客户向我发送"sales_tax"(而不是预期的"税收"),我应该返回什么.目前,我要回400.但是,我已经开始质疑自己了.我应该真的回来422吗?我的意思是,它是JSON(支持)并且它是有效的JSON,它只是不包含所有必需的字段.

rest http-status-codes

323
推荐指数
5
解决办法
25万
查看次数

302和307重定向有什么区别?

a 302 FOUND307 TEMPORARY REDIRECTHTTP响应有什么区别?

W3规范似乎表明它们都用于临时重定向,除非响应特别允许,否则它们都不能被缓存.

redirect http

196
推荐指数
6
解决办法
13万
查看次数

如何在django中提出禁止响应

我想做以下事情:

raise HttpResponseForbidden()
Run Code Online (Sandbox Code Playgroud)

但我得到错误:

exceptions must be old-style classes or derived from BaseException, not HttpResponseForbidden
Run Code Online (Sandbox Code Playgroud)

我该怎么做?

django

158
推荐指数
4
解决办法
7万
查看次数

HTTP重定向代码之间的区别

各种HTTP 3XX重定向代码之间的差异对我来说并不清楚.是的,我已经阅读了规范,但这里的标准和实际做法之间似乎存在一些差异.

301重定向代码似乎很清楚:这意味着资源已被永久移动到另一个URI,以及将来的请求应使用URI.

并且307重定向代码似乎也很清楚:这意味着重定向是临时的,未来的请求仍然应该使用原始URI.

但我不能告诉区别是什么之间302303,或者为什么他们中有谁真正从不同的301.它似乎302本来是一个临时重定向,(比如307),但在实践中,大多数浏览器都把它当成了一个303.但是a 303和a 之间有什么区别301?是301应该意味着重定向是永久的吗?

redirect uri http http-status-codes

143
推荐指数
2
解决办法
5万
查看次数

重定向到登录页面时,什么是正确的HTTP状态代码?

当用户未登录并尝试访问需要登录的页面时,重定向到登录页面的正确HTTP状态代码是什么?

我问,因为W3C 提出的3xx响应代码似乎都不符合要求:

10.3.1 300多种选择

所请求的资源对应于一组表示中的任何一个,每个表示具有其自己的特定位置,并且正在提供代理驱动的协商信息(部分12),以便用户(或用户代理)可以选择优选表示并重定向其请求到该位置.

除非是HEAD请求,否则响应应该包括一个实体,其中包含资源特征和位置列表,用户或用户代理可以从中选择最合适的资源特征和位置.实体格式由Content-Type头字段中给出的媒体类型指定.取决于格式和功能

用户代理,可以自动选择最合适的选择.但是,该规范没有为这种自动选择定义任何标准.

如果服务器具有首选的表示选择,则它应该在Location字段中包含该表示的特定URI; 用户代理可以使用Location字段值进行自动重定向.除非另有说明,否则该响应是可缓存的.

10.3.2 301永久移动

已为所请求的资源分配了一个新的永久URI,并且此资源的任何将来的引用应该使用返回的URI之一.具有链接编辑功能的客户端应尽可能自动将对Request-URI的引用重新链接到服务器返回的一个或多个新引用.除非另有说明,否则该响应是可缓存的.

新的永久URI应该由响应中的Location字段给出.除非请求方法是HEAD,否则响应的实体应该包含一个带有指向新URI的超链接的短超文本注释.

如果收到301状态代码以响应GET或HEAD以外的请求,则用户代理不得自动重定向请求,除非用户可以确认,因为这可能会改变发出请求的条件.

  Note: When automatically redirecting a POST request after
  receiving a 301 status code, some existing HTTP/1.0 user agents
  will erroneously change it into a GET request.
Run Code Online (Sandbox Code Playgroud)

10.3.3 302找到

请求的资源暂时驻留在不同的URI下.由于重定向有时可能会被更改,因此客户端应该继续使用Request-URI来处理将来的请求.如果由Cache-Control或Expires头字段指示,则此响应仅可缓存.

临时URI应该由响应中的Location字段给出.除非请求方法是HEAD,否则响应的实体应该包含一个带有指向新URI的超链接的短超文本注释.

如果收到302状态代码以响应GET或HEAD以外的请求,则用户代理不得自动重定向请求,除非用户可以确认,因为这可能会改变发出请求的条件.

  Note: RFC 1945 and RFC 2068 specify that the client is not allowed
  to change the method on the redirected request.  However, most
  existing user agent implementations treat 302 as …
Run Code Online (Sandbox Code Playgroud)

redirect http http-status-codes

123
推荐指数
4
解决办法
5万
查看次数

HTTP 401 - 什么是适当的WWW-Authenticate标头值?

我正在处理的应用程序有一个会话超时值.如果用户之间的交互时间不超过此值,则会尝试加载下一页,然后系统会提示他们登录.

所有发出的请求都通过这种机制进行路由,其中​​包括AJAX调用.最初我们在登录页面上发送了200个头文件,这引入了AJAX的一些问题,因为如果发送了200个响应,则运行代码,并且从这些RPC调用发回的大多数数据是JSON或得到评估的原始JavaScript(不问:|).

我建议401更好,因为我们的JSON解析器不会尝试使用HTML登录页面.. :)

但是,在阅读规范时,我注意到该WWW-Authenticate字段也必须发送.

这个领域有什么好处?会Application Login满足吗?

xmlhttprequest http-headers

104
推荐指数
2
解决办法
12万
查看次数

ASP.NET Web API:返回401 /未授权响应的正确方法

我有一个MVC webapi站点,它使用OAuth /令牌身份验证来验证请求.所有相关的控制器都具有正确的属性,并且身份验证正常.

问题是并非所有请求都可以在属性范围内被授权 - 某些授权检查必须在由控制器方法调用的代码中执行 - 在这种情况下返回401未授权响应的正确方法是什么?

我试过了throw new HttpException(401, "Unauthorized access");,但是当我这样做时,响应状态代码是500,我也得到了堆栈跟踪.即使在我们的日志记录DelegatingHandler中,我们也可以看到响应是500,而不是401.

c# asp.net-mvc authorization

85
推荐指数
6
解决办法
9万
查看次数