首页
学习
活动
专区
圈层
工具
发布

或许是你应该了解的一些 ASP.NET Core Web API 使用小技巧

在配置 CORS 策略时,我们可以设置只允许来源于某些 URL 地址的请求可以访问,或者是指定接口只允许某些 HTTP 方法进行访问,或者是在请求的 header 中必须包含某些信息才可以访问我们的接口...HTTP 状态码为 200 或是 400,当状态码为 200 时,代表数据获取成功,接口可以正常返回数据,当状态码为 400 时,则代表接口访问出现问题,此时则返回错误信息对象。   ...() 403 Forbid() 404 NotFound()   6、使用 Web API 分析器   在上面的示例中,因为我们需要指定接口需要返回的 HTTP 状态码,所以我们需要提前添加好 ProducesResponseType...特性,在某些时候我们可能在代码中添加了一种 HTTP 状态码的返回结果,可是却忘了添加特性描述,那么有没有一种便捷的方式提示我们呢?   ...HTTP 状态码为 400,而我们只添加了 HTTP 状态码为 200 的特性说明。

1.8K40

或许是你应该了解的一些 ASP.NET Core Web API 使用小技巧

在配置 CORS 策略时,我们可以设置只允许来源于某些 URL 地址的请求可以访问,或者是指定接口只允许某些 HTTP 方法进行访问,或者是在请求的 header 中必须包含某些信息才可以访问我们的接口...HTTP 状态码为 200 或是 400,当状态码为 200 时,代表数据获取成功,接口可以正常返回数据,当状态码为 400 时,则代表接口访问出现问题,此时则返回错误信息对象。   ...() 403 Forbid() 404 NotFound()   6、使用 Web API 分析器   在上面的示例中,因为我们需要指定接口需要返回的 HTTP 状态码,所以我们需要提前添加好 ProducesResponseType...特性,在某些时候我们可能在代码中添加了一种 HTTP 状态码的返回结果,可是却忘了添加特性描述,那么有没有一种便捷的方式提示我们呢?   ...例如在下面的接口代码中,我们根据用户的唯一标识去寻找用户数据,当获取不到数据的时候,返回的 HTTP 状态码为 400,而我们只添加了 HTTP 状态码为 200 的特性说明。

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

    CORS跨域资源共享(三):@CrossOriginCorsFilter处理跨域请求示例,原理分析【享学Spring MVC】

    CROS跨域请求处理方式 针对CORS跨域请求的处理,了解了基础知识后的我们知道,即使没有Spring MVC的支持我们也是能够自行处理的,毕竟在Spring4.2之前都是开发者自己手动向HttpServletResponse...这个问题是系列文章的第一篇我抛出来的,因为有一个现象是:简单请求我可以在Controller的方法内向response手动添加请求头搞定。...问题的现象是:response的响应头都有,但http状态码却是403,跨域失败。结果如下截图: ?...(serverResponse),这时状态码就已经设置为了403了,因此等handler方法执行完成之后再执行postHandle()方法体,因为返回状态码已经设置好,已经无力回天了,so就出现了如此怪异现象...请求的URL不存在,响应码404还是403?

    17.9K31

    前后端分离项目,如何解决跨域问题?

    403 Forbidden 是HTTP协议中的一个状态码(Status Code),意味着后端服务虽然成功解析了请求,但前端却没有访问该资源的权限。 那怎么解决这个问题呢?...二、Nodejs 代理 在 Nodejs 出现之前,JavaScript 编写的程序通常需要在用户的浏览器上执行,Node.js 出现后,JavaScript 也能用于服务端编程了。...同时,可以看得到,服务器端返回的状态码变成了 200,表示请求成功。...第一步,开启 CORS 支持 在 Spring Boot 应用中,加入 CORS 的支持简单到不忍直视,添加一个配置类就可以了。...本例中,后端返回 Access-Control-Allow-Origin: http://localhost:8080 就表示,跑在 9002 端口下的后端接口可以被 8080 端口的前端请求访问。

    3K31

    浏览器跨域限制概述

    最常见的例子:对于前后端完全分离的Web项目,前端页面通过rest接口访问数据时,会出现如下问题: 不允许发送POST请求:在发送POST请求之前会发送OPTIONS请求,HTTP响应状态码为403(Forbidden...允许发送GET请求:HTTP响应状态码为200,但是不能读取服务器返回的数据。...既然目前各主流浏览器都存在跨域限制,那么为什么一定要存在这个限制呢?如果没有跨域限制会出现什么问题?...具体来说,就是在DOM中通过动态创建javascript标签,并给标签设置src属性,在访问请求参数中传递需要回调的函数名; 同时,服务端在响应jsonp请求时,将数据作为请求参数指定的客户端回调函数参数作为返回值...具体来说,根据CORS标准定义,服务端需要在浏览器的跨域请求响应中包含指定消息头,浏览器根据响应消息头知道是否可以访问跨域资源。 3.

    3.4K10

    CORS跨域资源共享(一):模拟跨域请求以及结果分析,理解同源策略【享学Spring MVC】

    但是,但是,但是若你查看调试工具的Network栏,发现这个URL请求的response是有返回值的(并且http状态码是200,表示请求被服务端正常处理了),形如这样: ? ?...CORS CORS它是W3C(万维网联盟)的标准,它定义了在跨域访问资源时浏览器和服务器之间如何通信。它是为突破同源策略的限制而出现的一种官方标准的跨域解决方案。...这个头),浏览器发现木有这个头,就抛出一个错误XMLHttpRequest,进而进入ajax的onerror回到方法里(这就是为何你明明看到http状态码是200,response也有返回值,但偏偏你ajax...预检请求:它的作用是试探服务端是否能接受真正的请求,若服务器返回的状态码不是2xx而是4xx/5xx的话,那么浏览器将停止发送真正的请求。...OPTIONS请求返回的状态码是403,所以真实的请求并未发送(network栏只有一个请求~)。

    5.6K10

    Nginx 轻松搞定跨域问题!

    /en/docs/http/ngx_http_headers_module.html add_header 指令用于添加返回头字段,当且仅当状态码为图中列出的那些时有效。...通过报错信息提示可以得知,是跨域浏览器默认行为的预请求(option请求)没有收到ok状态码,此时再修改配置文件,当请求为option请求时候,给浏览器返回一个状态码(一般是204) server {...意思就是预请求响应头Access-Control-Allow-Headers中缺少头信息authorization(各种情况会不一样,在发生跨域后,在自定义添加的头信息是不允许的,需要添加到请求响应头Access-Control-Allow-Headers...都加上后,问题就解决了,这里报405是我服务端这个接口只开放了GET,没有开放PUT,而此刻我将此接口用PUT方法去请求,所以接口会返回这个状态码。...没添加全,headers没加到点上,自己用的那个可能复制过来的并不包含实际项目所用到的,没有添加options请求返回状态码等,导致Nginx再用通用的配置就会可能报以下异常) Access to XMLHttpRequest

    6.5K30

    python接口测试之401错误的分析和解决(十七)

    通过一个案例来分析在HTTP的请求中403错误的解决以及HTTP的状态码中403怎么理解,见发送一个请求后,返回的状态码,见如下的信息: ?...在如上的的截图中,可以看到返回了HTTP状态码是403,那么如何这个过程了,在HTTP的状态码中,403 Forbidden表示对请求资源的访问被拒绝,而且服务端没有给出为什么拒绝的理由,比如我们在浏览器访问如上链接...显示Basic,那么我们得到认证方案使用的是Basic Auth,在使用postman请求的时候需要鉴权,鉴权后再次访问,HTTP的状态码不再是403,而是200。见鉴权后的请求结果: ?...在请求中,headers中必须带上Authorization,要不就会再次出现403的错误。...下面实现使用python语言来处理403的错误,以及请求的时候带上鉴权,见实现的代码: #!

    1.8K60

    HTTP 基础

    消息主体最后以 –boundary– 标示结束 具有代表性的 HTTP 状态码 2XX(Success 成功状态码) 2XX 响应的结果标明请求被正常处理了。...200 OK: 表示从客户端发来的请求在服务器端被正常处理了 3XX(Redirection 重定向状态码) 3XX 响应结果表明浏览器需要执行某些特殊的处理以正确处理请求。...Not Allowed: 表明客户端请求的方法虽然能被服务器识别,但是服务器禁止使用该方法 451 Unavailable For Legal Reasons: 墙 注意区分401和403状态码: 401...表示我不知道你是谁,请认证身份 403 表示我知道你是谁,但是你无权获取请求内容 5XX(Server Error 服务器错误状态码) 5XX 的响应结果表明服务器本身发生错误。...注意,这种错误无法通过状态码识别,因为 HTTP 回应的状态码有可能是 200。 如果 Origin 指定的域名在许可范围内,服务器返回的响应,会多出几个头信息字段。

    65310

    小结HTTP状态码

    备注:3xxs类中的304是个奇葩,其不属于重定向信息提示,这个后面会讲到 HTTP状态码大体的内容已经了解了,但是在具体的工作中,要用到具体的状态码,我们下面来展开说明下各自的一些状态码和工作中常用到的那些状态码...备注:在web开发的工作中,我们都会使用封装好的库进行接口请求,而且浏览器的控制台网络中也不会出现这类状态码的提示(我没看到过?),所以这一大类基本不会接触到,了解一下即可。...2xxs状态码 200 OK:请求成功。成功的含义取决于HTTP方法: GET:资源已被提取并在消息正文中传输。 HEAD:实体标头位于消息正文中。 POST:描述动作结果的资源在消息体中传输。...备注:使用的最多的2xxs状态码是200和204,在遇到204状态码的时候,要注意一下自己发的请求是不是复杂请求。...在日常的web工作中,明白HTTP状态码是一个必备的活,起码在出错的时候,知道浏览器和服务器的交流障碍在哪里啦~ 参考 HTTP Status Codes HTTP Explained: The HTTP

    1.5K20

    解决 用 Nginx 处理 跨域问题

    ,下图链接http://nginx.org/en/docs/http/ngx_http_headers_module.html add_header 指令用于添加返回头字段,当且仅当状态码为图中列出的那些时有效...通过报错信息提示可以得知,是跨域浏览器默认行为的预请求(option请求)没有收到ok状态码,此时再修改配置文件,当请求为option请求时候,给浏览器返回一个状态码(一般是204) server {...意思就是预请求响应头Access-Control-Allow-Headers中缺少头信息authorization(各种情况会不一样,在发生跨域后,在自定义添加的头信息是不允许的,需要添加到请求响应头Access-Control-Allow-Headers...都加上后,问题就解决了,这里报405是我服务端这个接口只开放了GET,没有开放PUT,而此刻我将此接口用PUT方法去请求,所以接口会返回这个状态码。...没添加全,headers没加到点上,自己用的那个可能复制过来的并不包含实际项目所用到的,没有添加options请求返回状态码等,导致Nginx再用通用的配置就会可能报以下异常) “ Access to

    3.4K22

    【HTTP】构造HTTP请求和状态码

    状态码 用于响应中,表示响应的结果如何 正确? 错误?什么原因?...HTTP 中的状态码都是标准约定好的 200 OK 成功了,一切顺利 在抓包到的响应中 404 Not Found 访问的资源(URL 中的路径)没找到 403 Forbidden 请求的资源没有权限访问...例如:查看码云的私有仓库,如果不登陆,就会出现 403 学习状态妈的意义,就是为了能够更好的调试问题。...咱们在自己写服务器的时候,最好能够按照人家状态码的含义来正确使用 405 Method Not Allowed 你的服务器只支持 GET 请求,但是你发了个 POST(后续学到 Spring 的时候,尤其是对于初学者来说...其描述了要重定向到的目标的地址在哪 描述了重定向是要跳转到哪里 状态码小结 如何构造出 HTTP 请求 通过第三方工具构造 构造 HTTP 请求的第三方工具:PostMan,经典的,广泛使用的工具 每个标签页

    42710

    对CORS OPTIONS预检请求的一些思考

    CORS是w3c和浏览器厂商为解决跨域资源共享问题而推出的标准方案: 浏览机器一旦发现跨域请求,就会自动添加一些附加的头信息,有时还会多出一次附加的请求(浏览器自动完成,用户不会察觉),服务器响应特定标头...---- 今天我主要想要聊一聊CORS中的预检请求 当前端使用脚本请求一个跨域资源时,如果是非简单请求(下文会解释),浏览器会自动帮你先发出一个OPTIONS查询请求,称为预检(cors-preflight-request...),作用是询问服务器当前网页所在的域名是否在服务器的许可名单之中,以及可以使用哪些HTTP动词和头信息字段;只有得到肯定答复,浏览器才会发出正式的跨域请求。...如果服务端支持该跨域请求,建议返回204状态码(返回200也可以);如果不支持,建议返回403状态码(返回404或其他错误状态码也可以)。...在缓存有效期内,该资源的请求(URL和header字段都相同的情况下)不会再触发预检。

    2.1K20

    【网络原理】从零开始深入理解HTTP的报文格式(二)

    js 表示页面的行为. 1.1 认识"状态码" 状态码表示访问一个页面的结果. (是访问成功, 还是失败, 还是其他的一些情况) 以下是比较常见的状态码. ① 200 OK 表示访问成功....如果这个 URL 标识的资源不存在,那么就会出现 404.例如, 在浏览器中输入 https://www.sogou.com/index.html 此时就在尝试访问 sogou 上的 /index.html...查看码云的私有仓库, 如果不登陆, 就会出现 403. 访问受限403 ④ 418 l am a teapot 这个状态码并没有实际的意义,只是"开个玩笑",称为"彩蛋"....在登陆页面中经常会见到 302. 用于实现登陆成功后自动跳转到主页....状态码小结 1.2 认识响应"报头" 响应报头的基本格式和请求报头的格式基本一致.

    1K00

    Spring+SpringMVC+MyBatis+easyUI整合进阶篇(一)设计一套好的RESTful API

    ; URL中尽量不用大写; URI中不应该出现动词,动词应该使用HTTP方法表示但是如果无法表示,也可使用动词,例如:search没有对应的HTTP方法,可以在路径中使用search,更加直观; URI...PUT:在服务器更新资源(客户端提供改变后的完整资源)。 PATCH:在服务器更新资源(客户端提供改变的属性)。 DELETE:从服务器删除资源。...[DELETE] http://ssm-demo.hanshuai.xin/articles/12 // 删除 基本原则三:状态码(Status Codes) 处理请求后,服务端需向客户端返回的状态码和提示信息...常见状态码(状态码可自行设计,只需开发者约定好规范即可): 200:SUCCESS,请求成功; 401:Unauthorized,无权限; 403:Forbidden,禁止访问; 410:Gone,无此资源...安全原则二:CORS CORS即Cross-origin resource sharing,在RESTful API开发中,主要是为js服务的,解决javascript调用RESTful API时的跨域问题

    1.1K50

    Kong入门学习实践(9)安全防护插件

    在Kong中就提供了一些内置的安全防护的插件: IP限制 机器人检测 CORS IP限制 此插件主要用于限制非白名单中的IP来源对服务进行访问,或者禁止黑名单中的IP来源进行访问。...最后,我们通过PostMan来验证一下,当客户端主机不在白名单范围列表时,会直接返回403状态码和配置的message信息。 而当客户端IP地址符合条件时,则会正常转发到上游服务。...最后,我们可以通过安装一个扫描工具如IBM Security AppScan对指定域名URL来进行一次Full Scan扫描来验证,我们会发现全部返回了403 Forbidden的状态码响应。...(2)headers:指定允许的header头列表,即Access-Control-Allow-Headers,用于预检请求时让插件知道哪些http头在实际请求时将被允许使用。...(3)methods:指定允许的请求方法列表,即Access-Control-Allow-Methods,实际场景中可以配置为具体的GET或POST。

    78330

    HTTP接口设计

    完成请求后返回状态码 200 OK 完成请求后需要返回被请求的资源详细信息 POST用于创建新资源 创建完成后返回状态码 201 Created 完成请求后需要返回被创建的资源详细信息 PUT用于完整的替换资源或者创建指定身份的资源...,比如创建 id 为 123 的某个资源 如果是创建了资源,则返回 201 Created 如果是替换了资源,则返回 200 OK 完成请求后需要返回被修改的资源详细信息 PATCH用于局部更新资源 完成请求后返回状态码...200 OK 完成请求后需要返回被修改的资源详细信息 DELETE用于删除某个资源 完成请求后返回状态码 204 No Content 状态码 请求成功 200 OK : 请求执行成功并返回相应数据,...返回的实体中应该包含当前状态的信息,以及指向处理状态监视器或状态预测的指针,以便客户端能够获取最新状态。...客户端发起的请求如果没有包含 If-Unmodified-Since 或者 If-Match 头,那就返回状态码 403 Forbidden ,在响应正文中解释为何返回该状态码 客户端发起的请求提供的

    2.3K20

    前端面试题

    补充400和401、403状态码 你知道400和401、403状态码是什么吗?...nginx代理跨域 nodejs中间件代理跨域 WebSocket协议跨域 前端http相关问题 HTTP常用状态码及其含义?...注意,在HTTP1.0中对应的状态信息是“Moved Temporatily”。出现该状态代码时,浏览器能够自动访问新的URL,因此它是一个很有用的状态代码。...由于这个原因,HTTP 1.1新增了307,以便更加清除地区分几个状态代码:当出现303应答时,浏览器可以跟随重定向的GET和POST请求;如果是307应答,则浏览器只能跟随对GET请求的重定向 4xx...应答中会包含一个WWW-Authenticate头,浏览器据此显示用户名字/密码对话框,然后在填写合适的Authorization头后再次发出请求 403 Forbidden 资源不可用。

    1K10
    领券