首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

通过扩展让ASP.NET Web API支持W3C的CORS规范

让ASP.NET Web API支持JSONP和W3C的CORS规范是解决“跨域资源共享”的两种途径,《通过扩展让ASP.NET Web API支持JSONP》我们实现了前者,并且《W3C的CORS...该方法,我们从指定的HttpRequestMessage对象中提取表示请求站点的“Origin”报头值。...调用的Ajax请求,如下所示的请求和响应内容会被捕捉到,我们可以清楚地看到利用CorsMessageHandler添加的“Access-Control-Allow-Origin”报头出现在响应的报头集合...ASP.NET MVC应用用户调用Web API的View,针对Ajax请求调用Web API的JavaScript程序被改写成如下的形式:我们发送Ajax请求之前利用setRequestHeader...”)均出现在针对预检请求的响应

2.4K90
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    常见的HTTP状态码

    实体主体的文档(如果存在的话)是一个错误消息。该错误消息通常无济于事,因为客户端无法修复服务器方面的问题。...实际上,HTTP 1.0,响应代码302的名称是”Moved Temporarily”,不幸的是,实际生活,绝大多数客户端拿它像303一样处理。...客户端提供了错误的证书,或者根本没有提供证书。这里的证书(credential)可以是一个用户名/密码,也可以市一个API key,或者一个认证令牌。...所以HTTP并不要求客户端每个请求中都提供Content-Length报头。但HTTP服务器可以要求客户端必须设置报头。...当你用LBYL请求来考察服务器是否会接受你的表示,如果服务器确认会接受你的表示,那么你将获得响应代码100,否则你将获得417。 5XX 服务端错误 这些响应代码表明服务器端出现错误

    2K30

    Android网络编程(一)HTTP协议原理

    还有一方面,server不须要先前信息它的应答就较快。 1.http表示要通过HTTP协议来定位网络资源;host表示合法的Internet主机域名或者IP地址。...关于请求报头,会在后面的消息报头一节做统一的解释。 请求数据 请求数据不在GET方法中使用。而是POST方法中使用。...或者指定“close”选项,通知server,响应完毕后,关闭连接 Cache-Control:用于指定缓存指令,缓存指令是单向的(响应中出现的缓存指令在请求未必会出现)。...,请求的方法是POST,请求地址为http://patientapi.shoujikanbing.com/api/common/getVersion。...响应报文的实体採用的编码格式为为gzip,所以Fiddler软件显示的是乱码。

    71620

    Java程序员必须掌握的网站知识 —— HTTP

    普通报头 ① Cache-Control:用于指定缓存指令,缓存指令是单向的(响应中出现的缓存指令在请求未必会出现),且是独立的(一个消息的缓存指令不会影响另一个消息处理的缓存机制) 请求的缓存指令包括...、no-cache、no-store、no-transform、must-revalidate、proxy-revalidate、max-age、s-maxage. eg,发送的响应消息设置普通报头域...eg:Accept-Language:zh-cn.如果请求消息没有设置这个报头域,服务器假定客户端对各种语言都可以接受。...⑥ Host(发送请求,该报头域是必需的) Host请求报头域主要用于指定被请求资源的Internet主机和端口号,它通常从HTTP URL中提取出来的,eg: 我们浏览器输入:http://...为了让代理服务器或浏览器一段时间以后更新缓存(再次访问曾访问过的页面,直接从缓存中加载,缩短响应时间和降低服务器负载)的页面,我们可以使用Expires实体报头域指定页面过期的时间。

    1K60

    W3C的CORS Specification

    针对我们前面演示的应用场景,即显示浏览器的某个Web页面通过调用Web API的方式来获取它所需的资源,资源提供者为Web API本身,通过发送Ajax请求来调用Web API的JavaScript...CORS旨在定义一种规范让浏览器接收到从提供者获取的资源能够正决定是否应该将此资源分发给消费者作进一步处理。CROS利用资源提供者的显式授权来决定目标资源是否应该与消费者共享。...对于前面我们演示实例调用Web API获取联系人列表的请求来说,它就具有如下一个“Origin”报头。...换言之,如果作了这样的设置,意味着由其提供的是一种公共资源,所以在做此设置之前需要慎重。如果针对请求着的授权不被允许,资源提供者可以将此响应报头设置为“null”,或者让响应不具有此报头。...按照这里介绍的针对响应报头的授权原则,只有“Access-Control-Expose-Headers”报头中指定的报头和简单响应报头才会包含在该方法返回的列表

    1.2K90

    7、web爬虫讲解2—urllib库爬虫—状态吗—异常处理—浏览器伪装技术、设置用户代理

    转: ##【http://bdy.lqkweb.com】 ##【http://www.swpan.cn】 如果爬虫没有异常处理,那么爬行中一旦出现错误,程序将崩溃停止工作,有异常处理即使出现错误也能继续执行下去...:服务器内部出现错误 501:服务器不支持实现请求所需要的功能 2.异常处理 URLError捕获异常信息 #!...()方法请求的,此时用urlopen()无法请求,但是我们就会感觉到这样很费劲,难道每次请求都要创建build_opener(),所以我们需要设置使用urlopen()方法请求自动报头设置使用urlopen...()方法请求自动报头,也就是设置用户代理install_opener()将报头信息设置为全局,urlopen()方法请求也会自动添加报头 #!...#添加报头请求对象 urllib.request.install_opener(opener) #将报头信息设置为全局,urlopen()方法请求也会自动添加报头 #请求 yh_dl

    70580

    HTTP 协议详解 (增删减及标注)

    浏览器的地址栏输入网址的方式访问网页,浏览器采用GET方法向服务器获取资源,eg:GET /form.html HTTP/1.1 (CRLF) POST方法要求被请求服务器接受附在请求后面的数据...eg: Cache-Control 用于指定缓存指令,缓存指令是单向的(响应中出现的缓存指令在请求未必会出现),且是独立的(一个消息的缓存指令不会影响另一个消息处理的缓存机制),HTTP1.0使用的类似的报头域为...eg:Accept-Language:zh-cn.如果请求消息没有设置这个报头域,服务器假定客户端对各种语言都可以接受。...Host(发送请求,该报头域是必需的) Host请求报头域主要用于指定被请求资源的Internet主机和端口号,它通常从HTTP URL中提取出来的,eg: 我们浏览器输入:http://www.guet.edu.cn...为了让代理服务器或浏览器一段时间以后更新缓存(再次访问曾访问过的页面,直接从缓存中加载,缩短响应时间和降低服务器负载)的页面,我们可以使用Expires实体报头域指定页面过期的时间。

    92250

    HTTP协议经典详解

    TRACE   请求服务器回送收到的请求信息,主要用于测试或诊断 CONNECT 保留将来使用 OPTIONS 请求查询服务器的性能,或者查询与资源相关的选项和需求 应用举例: GET方法:浏览器的地址栏输入网址的方式访问网页...eg: Cache-Control   用于指定缓存指令,缓存指令是单向的(响应中出现的缓存指令在请求未必会出现),且是独立的(一个消息的缓存指令不会影响另一个消息处理的缓存机制),HTTP1.0使用的类似的报头域为...eg:Accept-Language:zh-cn.如果请求消息没有设置这个报头域,服务器假定客户端对各种语言都可以接受。...Host(发送请求,该报头域是必需的) Host请求报头域主要用于指定被请求资源的Internet主机和端口号,它通常从HTTP URL中提取出来的,eg: 我们浏览器输入:http://www.guet.edu.cn...为了让代理服务器或浏览器一段时间以后更新缓存(再次访问曾访问过的页面,直接从缓存中加载,缩短响应时间和降低服务器负载)的页面,我们可以使用Expires实体报头域指定页面过期的时间。

    1.4K40

    如何自动转发接收的请求报头

    其实我们的应用也可能会使用到分布式跟踪这种类似的功能,我们需要在某个应用添加一些“埋点”,当它调用另一个应用时,这些埋点会自动添加到请求报头集合,从而实现在整个调用链自动传递。...App3提供的API仅仅按照如下的方式将接收到的请求报头输出到控制台上。...四、 同名报头的处理 由于IOutgoingHeaderProcessor接口的AddHeaders方法返回的一个IDisposable对象表示的上下文,意味着上下文之间可能出现嵌套的关系。...一般来说,这种情况正是我们希望的,但是如果我们一个具有嵌套关系的多个上下文中添加了多个同名的报头,就有可能出现我们不愿看到的结果。...顾名思义,这个方法添加指定请求报头之前,会先将现有的报头清除。

    30230

    Http协议与TCP协议简单理解

    C#中会有Socket,实际上socket是对TCP/IP协议的封装,Socket本身并不是协议,而是一个调用接口(API)。...eg: Cache-Control   用于指定缓存指令,缓存指令是单向的(响应中出现的缓存指令在请求未必会出现),且是独立的(一个消息的缓存指令不会影响另一个消息处理的缓存机制),HTTP1.0使用的类似的报头域为...eg:Accept-Language:zh-cn.如果请求消息没有设置这个报头域,服务器假定客户端对各种语言都可以接受。...Host(发送请求,该报头域是必需的) Host请求报头域主要用于指定被请求资源的Internet主机和端口号,它通常从HTTP URL中提取出来的,eg: 我们浏览器输入:http://www.guet.edu.cn...为了让代理服务器或浏览器一段时间以后更新缓存(再次访问曾访问过的页面,直接从缓存中加载,缩短响应时间和降低服务器负载)的页面,我们可以使用Expires实体报头域指定页面过期的时间。

    5K91

    前端妹子聊HTTP协议

    URI;如果URL没有给出abs_path,那么当它作为请求URI,必须以“/”的形式给出,通常这个工作浏览器自动帮我们完成。...请求服务器删除Request-URI所标识的资源 应用举例: GET方法:浏览器的地址栏输入网址的方式访问网页,浏览器采用GET方法向服务器获取资源,eg:GET /form.html HTTP...4xx:客户端错误--请求有语法错误请求无法实现 5xx:服务器端错误--服务器未能实现合法的请求 常见状态代码、状态描述、说明: 200 OK //客户端请求成功 400 Bad Request...//客户端请求有语法错误,不能被服务器所理解 401 Unauthorized //请求未经授权,这个状态代码必须和WWW-Authenticate报头域一起使用 403 Forbidden /...目前主流的三种Web服务交互方案,REST相比于SOAP(Simple Object Access protocol,简单对象访问协议)以及XML-RPC更加简单明了,无论是对URL的处理还是对Payload

    58620

    Asp.Net Web API 2第十四课——Content Negotiation(内容协商)

    HTTP内容协商的主要机制是以下请求报头: Accept:响应可接收的媒体类型,如“application/json”、“application/xml”,或者自定义媒体类型,如“application...服务器也可以查看HTTP请求的其它选项。例如,如果该请求含有一个X-Requested-With报头,它指示这是一个AJAX请求没有Accept报头的情况下,服务器可能会默认使用JSON。...注意,响应的Content-Type报头已被设置成“application/json”。 控制器也可以返回一个HttpResponseMessage对象。...你可以设置状态码、添加HTTP报头等等。 对资源进行序列化的对象叫做媒体格式化器。媒体格式化器派生于MediaTypeFormatter类。...如果未找到匹配,内容协商器会尝试匹配请求体的媒体类型(有请求)。例如,如果请求含有JSON数据,内容协商器会找到JSON格式化器。

    81710

    008:Http协议详解

    当然,实际应用,HTTP请求正文可以包含更多的内容。 HTTP协议之响应: 接收和解释请求消息后,服务器返回一个 HTTP 响应消息。...4xx:客户端错误请求有语法错误请求无法实现 5xx:服务器端错误–服务器未能实现合法的请求 详细状态码点击查看 2、响应报头后述 3、响应正文就是服务器返回的资源的内容 HTTP 协议之消息报头篇...Cache-Control用于指定缓存指令,缓存指令是单向的(响应中出现的缓存指令在请求未必会出现),且是独立的(一个消息的缓存指令不会影响另一个消息处理的缓存机制),HTTP1.0使用的类似的报头域为...Accept-Language:zh-cn.如果请求消息没有设置这个报头域,服务器假定客户端对各种语言都可以接受。 Authorization 请求报头域主要用于证明客户端有权查看某个资源。...为了让代理服务器或浏览器一段时间以后更新缓存(再次访问曾访问过的页面,直接从缓存中加载,缩短响应时间和降低服务器负载)的页面,我们可以使用 Expires 实体报头域指定页面过期的时间。

    64630

    HTTP协议具体解释

    eg: Cache-Control 用于指定缓存指令,缓存指令是单向的(响应中出现的缓存指令在请求未必会出现)。...eg:Accept-Charset:iso-8859-1,gb2312.假设在请求消息没有设置这个域。缺省是不论什么字符集都能够接受。...eg:Accept-Language:zh-cn.假设请求消息没有设置这个报头域,server假定client对各种语言都能够接受。...该报头域是必需的) Host请求报头域主要用于指定被请求资源的Internet主机和port号,它通常从HTTP URL中提取出来的,eg: 我们浏览器输入:http://www.guet.edu.cn...Expires Expires实体报头域给出响应过期的日期和时间。为了让代理server或浏览器一段时间以后更新缓存(再次訪问曾訪问过的页面

    52610

    HTTP协议详解

    TRACE   请求服务器回送收到的请求信息,主要用于测试或诊断 CONNECT 保留将来使用 OPTIONS 请求查询服务器的性能,或者查询与资源相关的选项和需求 应用举例: GET方法:浏览器的地址栏输入网址的方式访问网页...eg: Cache-Control   用于指定缓存指令,缓存指令是单向的(响应中出现的缓存指令在请求未必会出现),且是独立的(一个消息的缓存指令不会影响另一个消息处理的缓存机制),HTTP1.0使用的类似的报头域为...eg:Accept-Language:zh-cn.如果请求消息没有设置这个报头域,服务器假定客户端对各种语言都可以接受。...Host(发送请求,该报头域是必需的) Host请求报头域主要用于指定被请求资源的Internet主机和端口号,它通常从HTTP URL中提取出来的,eg: 我们浏览器输入:http://www.guet.edu.cn...为了让代理服务器或浏览器一段时间以后更新缓存(再次访问曾访问过的页面,直接从缓存中加载,缩短响应时间和 降低服务器负载)的页面,我们可以使用Expires实体报头域指定页面过期的时间。

    1.7K70

    HTTP协议详解

    TRACE   请求服务器回送收到的请求信息,主要用于测试或诊断 CONNECT 保留将来使用 OPTIONS 请求查询服务器的性能,或者查询与资源相关的选项和需求 应用举例: GET方法:浏览器的地址栏输入网址的方式访问网页...eg: Cache-Control   用于指定缓存指令,缓存指令是单向的(响应中出现的缓存指令在请求未必会出现),且是独立的(一个消息的缓存指令不会影响另一个消息处理的缓存机制),HTTP1.0使用的类似的报头域为...eg:Accept-Language:zh-cn.如果请求消息没有设置这个报头域,服务器假定客户端对各种语言都可以接受。...Host(发送请求,该报头域是必需的) Host请求报头域主要用于指定被请求资源的Internet主机和端口号,它通常从HTTP URL中提取出来的,eg: 我们浏览器输入:http://www.guet.edu.cn...为了让代理服务器或浏览器一段时间以后更新缓存(再次访问曾访问过的页面,直接从缓存中加载,缩短响应时间和降低服务器负载)的页面,我们可以使用Expires实体报头域指定页面过期的时间。

    1K90

    Http协议简介

    Accept-Charset请求报头域用于指定客户端接受的字符集。eg:Accept-Charset:iso-8859-1,gb2312.如果在请求消息没有设置这个域,缺省是任何字符集都可以接受。...eg:Accept-Encoding:gzip.deflate.如果请求消息没有设置这个域服务器假定客户端对各种内容编码都可以接受。...eg:Accept-Language:zh-cn.如果请求消息没有设置这个请求报头域,服务器假定客户端对各种语言都可以接受。...Cache-Control请求报头域 指定请求和响应遵循的缓存机制。在请求消息或响应消息设置Cache-Control并不会修改另一个消息处理过程的缓存处理过程。...为了让代理服务器或浏览器一段时间以后更新缓存(再次访问曾访问过的页面,直接从缓存中加载,缩短响应时间和降低服务器负载)的页面,我们可以使用Expires实体报头域指定页面过期的时间。

    88210

    ASP.NET Core错误处理中间件: 异常处理器

    由于缓存在大部分情况下只适用于成功状态的响应,如果服务端处理请求过程中出现异常,之前设置的缓存报头是不应该出现在响应报文中的。...如下所示的应用,我们将针对请求的处理实现在ProcessAsync方法,它有50%的可能会抛出异常。...不论是返回正常的响应内容还是抛出异常,这个方法都会先设置一个Cache-Control的响应报头,并将缓存时间设置为1小(Cache-Control: max-age=3600)。...如下所示的两个响应报文分别对应正常响应和抛出异常的情况,我们会发现程序设置的缓存报头Cache-Control: max-age=3600只会出现在状态码为“200 OK”的响应。...状态码为“500 Internal Server Error”的响应,则会出现3个与缓存相关的报头(Cache-Control、Pragma和Expires),它们的目的都是禁止缓存或者将缓存标识为过期

    95220

    Android网络编程(一)HTTP协议原理

    另一方面,服务器不需要先前信息它的应答就较快。...,要完成请求必须进行更进一步的操作 400~499:客户端错误请求有语法错误请求无法实现 500~599:服务器端错误,服务器未能实现合法的请求 常见的状态码如下: 200 OK:客户端请求成功 400...通用报头 既可以出现请求报头,也可以出现在响应报头中 Date:表示消息产生的日期和时间 Connection:允许发送指定连接的选项,例如指定连接是连续的,或者指定“close”选项,通知服务器,响应完成后...,关闭连接 Cache-Control:用于指定缓存指令,缓存指令是单向的(响应中出现的缓存指令在请求未必会出现),且是独立的(一个消息的缓存指令不会影响另一个消息处理的缓存机制) 请求报头 请求报头通知服务器关于客户端求求的信息...Fiddler,Android利用Fiddler进行网络数据抓包这篇文章详尽介绍了如何使用Fiddler,在这里就不赘述了。

    1.2K50
    领券