大家好,关于ajax跨域post请求数据很多朋友都还不太明白,不过没关系,因为今天小编就来为大家分享关于既然JSONP同样可以请求到数据,还可以跨域,为什么还要用axios的知识点,相信应该可以解决大家的一些困惑和问题,如果碰巧可以解决您的问题,还望关注下本站哦,希望对各位有所帮助!
既然JSONP同样可以请求到数据,还可以跨域,为什么还要用axios
一个场景
你做为项目前端的负责人,需要定下前端的数据请求规范与框架,你早就对axios很不满了,于是决定拉起袖子,直接用JSONP上。
于是在团队里面,你直接喊,大家,后面我们请求数据统一使用JSONP,谁用axios谁明天就不用来了。
然后,你和服务端的人员开了一个会,让他们定下接口文档,一天后,你收到一份接口文档,里面写好了请求协议,除了GET还有POST,还有PUT和DELETE。
你用了一个GET接口,请求完,发现很完美,服务端不用设置Access-Control-Allow,你突然觉得自己这个决定很完美,果然最初的决定是正确的,于是你就让各个开发开始对接服务端接口。
问题来了不一会儿,一位前端开发和你说,不行呀,JSONP只能进行Get请求,其它什么POST都不支持呀,顿时你懵逼了……
上面是个虚拟场景,里面讲了JSONP的一个问题,就是只能使用GET请求获取数据。我们来细说下什么是JSONP。
JSONP原理ajax的核心是通过XmlHttpRequest获取链接的内容,它是可以支持任何请求方式的。但有个问题就是,如果服务端不支持,它是不可能取到跨域请求的信息的。而JSONP呢?
我们在写网页代码时,发现标签的src属性是可以加载其它跨的信息的,比如Script、Img、iFrame的标签,于是我们灵机一动,那是不是也可以来加载服务端接口呀。
然后你试了下,哇靠,果然可以,只要输出格式处理好,你甚至可以使用它来请求数据并进行处理。
先天问题但是由于先天性的问题,JSONP只适合用来获取数据,它没法做其它请求处理。
那你可能会说,那我就获取使用JSONP可以了吧,其它使用AJAX。我们先不说,统一编码对维护性的成本降低的重要性,你还分两套实现方案,你如果实在要处理,我们试下看看效果如果。
假如一切正常,你用JSONP请求数据,数据返回正常,你显示,很完美。
假如出了一点点问题,你用JSONP请求数据,数据没返回,或是一些奇怪的错误,对,没有错误码,你都不知道是网络问题,还是代码问题,还是鉴权问题。对了,说到鉴权,JSONP你都没法自定义Header,可制作性太低了。
总结下JSONP请求能力单一JSONP在现在前端开发中影响编码规范现在跨域处理很方便,处理都是微服务例外如果你实在需要一个外部接口,这个接口不是你开发的,且是不支持跨域的,那JSONP是最好的处理方式。
一个请求和多个请求区别
一个请求(singlerequest)和多个请求(multiplerequests)之间的区别在于请求的数量和请求的处理方式:
1.一个请求:指在某个特定时间点只发送一个请求。这个请求可能是客户端向服务器请求数据或执行特定操作的单个请求。例如,向服务器发送一个HTTPGET请求获取一个网页的内容。
2.多个请求:指在某个特定时间点同时发送多个请求。这些请求可以是同时发送给服务器的多个请求,也可以是通过并发请求或并行处理多个请求。这样可以同时发送多个请求来提高系统的吞吐量和响应速度。
区别:
-数量:一个请求只有一个请求对象,而多个请求则有多个请求对象。
-处理方式:一个请求通常会按顺序执行,接收响应后再发送下一个请求。而多个请求可以同时进行,可以并行处理或并发执行多个请求。
需要根据具体的应用场景和需求来选择使用单个请求还是多个请求。在某些情况下,同时发送多个请求可以提高系统的效率和性能。然而,也需要注意管理并发请求的资源和并发访问的限制,以避免对服务器或网络造成过大的负载。
js 应用间 通讯原理
在JavaScript应用程序之间进行通信的一种常见原理是使用消息传递机制。这可以通过使用浏览器提供的postMessageAPI来实现。通过postMessage,一个应用程序可以向另一个应用程序发送消息,并在接收到消息时执行相应的操作。
这种通信机制可以用于跨域通信,例如在不同的窗口、标签页或iframe之间进行通信。
通过定义消息的格式和内容,应用程序可以在需要时共享数据、触发事件或执行其他操作,从而实现应用程序之间的交互和协作。
关于ajax跨域post请求数据和既然JSONP同样可以请求到数据,还可以跨域,为什么还要用axios的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。