获取在reactjs中等同于XMLHttpRequest,它提供了许多与XMLHttpRequest相同的功能,但被设计成更具可扩展性和高效性。
获取的核心在于对HTTP接口的抽象,包括请求,响应,头,身体,以及用于初始化异步请求的全球获取。得益于JavaScript实现的这些抽象好的HTTP模块,其他接口能够很方便的使用这些功能,除此之外,获取还利用到了请求的异步特性,它是基于承诺的。
请注意,取规范与jQuery.ajax()主要有两种方式的不同,牢记:
-
<李>当接收到一个代表错误的HTTP状态码时,从fetch()返回的承诺不会被标记为拒绝,即使该HTTP响应的状态码是404或500。相反,它会将承诺状态标记为解决(但是会将解决的返回值的好属性设置为false),仅当网络故障时或请求被阻止时,才会标记为拒绝。李>
<李>默认情况下,获取不会从服务端发送或接收任何饼干,如果站点依赖于用户会话,则会导致未经认证的请求(要发送饼干,必须设置凭证选项)。李>
在解决获取跨域请求接口的时候,一般都是让后台接口在返回头里添加
//允许所有域名的脚本访问该资源 标题(“Access-Control-Allow-Origin: *”);
确实这样是可以解决跨域请求的问题,但是如果我们要在请求的时候添加会话,那么这样设置就会出现问题了。
获取添加饼干验证的方法是设置凭证:“包括”
fetch (url, { 方法:“文章”, 身体:JSON.stringify (params), 模式:“打仗”,//请求时添加饼干 凭证:包括, 标题:新头({ “接受”:application/json, “内容类型”:“应用程序/x-www-form-urlencoded;charset=utf - 8”, }) })
设置好了之后,信心满满的发起请求。却发现网络请求报错了
不能使用通配符“*”在“Access-Control-Allow-Origin”头凭证国旗是正确的。起源“http://localhost: 3000”因此不允许访问
引用>
原因是网络请求需要携带饼干时Access-Control-Allow-Origin是不能设置为*的,这个时候应该要给Access-Control-Allow-Origin指定域名
这样就可以达到跨域请求的同时传递饼干的目的了
<李>列表项目李>
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对的支持。
反应如何解决获取跨域请求时会话失效问题