我漂亮的REST网络服务很棒.除非我访问类似的页面~/
,它返回默认的IIS 403 Forbidden页面(即使使用Fiddler并仅指定Accept: application/json
).我只想要JSON或XML错误.有没有办法用自定义异常处理程序覆盖所有异常?或者一个默认的控制器来处理所有未知请求?什么是最简单,最正确(如果不同)的方法来处理这个问题,以便客户端只需要解析REST API友好的XML数据报或JSON blob?
示例请求:
GET http://localhost:7414/ HTTP/1.1
User-Agent: Fiddler
Host: localhost:7414
Accept: application/json, text/json, text/xml
Run Code Online (Sandbox Code Playgroud)
回复:(我不喜欢,注意这text/html
不是可接受的响应类型之一)
HTTP/1.1 403 Forbidden
Cache-Control: private
Content-Type: text/html; charset=utf-8
Server: Microsoft-IIS/8.0
X-SourceFiles: =?UTF-8?B?QzpcaWNhcm9sXENoYXJpdHlMb2dpYy5pQ2Fyb2wuQXBp?=
X-Powered-By: ASP.NET
Date: Fri, 25 Jan 2013 21:06:21 GMT
Content-Length: 5396
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>IIS 8.0 Detailed Error - 403.14 - Forbidden</title>
<style type="text/css">
<!--
...
Run Code Online (Sandbox Code Playgroud)
回复(我更喜欢):
HTTP/1.1 403 Forbidden
Cache-Control: private
Content-Type: application/json; charset=utf-8 …
Run Code Online (Sandbox Code Playgroud) 我有一个典型的 Flexbox 粘性页脚解决方案,如下所示:
<body>
<div class="wrapper">
<div class="header">Page Header</div>
<div class="body">
<div class="body1">Page Body 1</div>
<div class="body2">Page Body 2</div>
<div class="body3">Page Body 3</div>
<div class="body4">Page Body 4</div>
<div class="body5">Page Body 5</div>
</div>
<div class="footer">Page Sticky Footer</div>
</div>
</body>
Run Code Online (Sandbox Code Playgroud)
html {
height: 100%;
overflow: hidden;
}
body {
height: 100%;
margin: 0;
}
.wrapper {
display: flex;
flex-direction: column;
height: 100%;
overflow-y: auto;
}
.body {
flex-grow: 1;
}
Run Code Online (Sandbox Code Playgroud)
在 iOS Safari 上,我希望在滚动时看到地址栏最小化,但地址栏却保持原状。我知道如果我允许在根html
元素上滚动,我就可以让事情正常工作,但我想知道是否可以采取任何措施来保留 iOS 地址栏最小化行为,同时保持主体内包装容器中的滚动。
沙箱在这里: https ://codesandbox.io/s/condescending-pascal-r4ntne?file=/styles.css
您可以访问: …