当前位置: 首页 > 知识库问答 >
问题:

基于内容类型的飞行前请求触发器

琴元凯
2023-03-14

最近,我阅读了有关飞行前请求(选项)的内容,了解到当内容类型为“application/json”或除“text/plain”、“application/x-www-form-urlencoded”之外的其他内容时,总是会触发该请求

所以我的问题是,为什么它总是针对特定的内容类型触发,比如“application/json”,而不是针对上述内容类型。

共有1个答案

上官凯泽
2023-03-14

简单的请求

简单的跨站点请求满足以下所有条件:唯一允许的方法是:

GET
HEAD
POST

除了用户代理自动设置的头(例如连接、用户代理等),允许手动设置的头只有:

Accept
Accept-Language
Content-Language
Content-Type

Content-Type标头的唯一允许值是:

application/x-www-form-urlencoded
multipart/form-data
text/plain

预检请求

与简单请求不同(如上所述),“预飞”请求首先通过OPTIONS方法向另一个域上的资源发送HTTP请求,以确定实际请求是否可以安全发送。跨站点请求是这样预处理的,因为它们可能会影响用户数据。特别是,在以下情况下,请求将被预引导:

  • 它使用GET、HEAD或POST以外的方法。此外,如果POST用于发送具有应用程序/x-www-form-urlencoded、multipart/form-data或text/平原以外的Content-Type的请求数据,例如,如果POST请求使用应用程序/xml或text/xml向服务器发送XML有效负载,则该请求是预编译的。
  • 它在请求中设置自定义标头(例如请求使用X-PINGOther等标头)

希望这能回答你的问题,否则请发表评论。

来源

 类似资料:
  • 我有一个云函数,它在我的客户机上验证表单提交的输入。我正在使用云函数用于带有cors express中间件的Firebase https触发器。 Firebase功能 对函数的客户端调用 问题 是否可以防止firebase在预飞行请求上触发函数调用?如果没有,那么是否有一种方法可以阻止预飞行请求并成功地将数据传递给函数。

  • 我正在使用Restasured发送请求: 然而,在日志中,我看到又自动添加了1个标题: 我得到415个错误。是否可以发送没有内容类型的请求?我的意思是,没有这个标题;如果发送请求时内容类型等于空行,则仍然存在400错误;使其工作的唯一方法是在不使用此标头的情况下发送请求。

  • 我正在尝试通过API发送post请求。呼叫要求: 我已经使用Charles HTTP代理查看需要发送哪些头/内容。 我的请求:(基本上抄录自查尔斯的多部分章节) 如有任何帮助,我们将不胜感激!干杯!

  • 我需要创建一个反向代理,接收传入的请求,并基于请求正文的内容,将请求路由到特定的URI。 这是一个路由微服务,它类似于反向代理,根据来自每个请求主体的一些信息进行路由。这意味着对于每个请求,我需要解析请求正文并获得“username”字段,然后建立JDBC连接以从数据库中获取附加信息。根据数据库中的信息,它最终将请求重定向到正确的URI。 从我现在所拥有的,我有2个阻止方法。第一个是请求主体的解析

  • 从浏览器到我的自助主机OWIN WebAPI的所有预飞行请求都不会被中间件处理。如果我从邮递员提出选项请求,它们将被处理。为什么是这样的行为? 请求URL:http://localhost:9000/api/v1/conversations/create?connectionId=13509f44-eacb-4950-8cc8-71bd37098975 请求方法:选项 状态代码:401未经授权的远