ajax jsonp原理
很多同学在进行编程学习时缺乏系统学习的资料。本页面基于ajax jsonp原理内容,从基础理论到综合实战,通过实用的知识类文章,标准的编程教程,丰富的视频课程,为您在ajax jsonp原理相关知识领域提供全面立体的资料补充。同时还包含 android、a href、abap 的知识内容,欢迎查阅!
ajax jsonp原理相关知识
-
就算你懂了JSONP,那你又懂AJAX吗? 上篇文章我们说到了什么是JSONP以及JSONP的用法,但说到底,JSONP终究只是一种以脚本的形式来运行的方法,并且,它只能向服务器发送GET请求,原则上不能发送其他如POST、PUT的请求的。因此在这里向大家隆重推出AJAX。 什么是AJAX,我们可以先把这四个英文字母拆分开来,他们分别代表的意思为:A(Asynchronous——异步的)、J(JavaScript)、A(And)、X(XML) 简单地说一下AJAX的起源和背景:IE5时率先在JavaScript中引入了ActiveX对象(API),使得JavaScript可以直接发起HTTP请求,随后被多个浏览器跟进和模仿后,最后W3C给这个API取名为XMLHttpRequest,并正式纳入W3C规范。 顺便提一下,在XMLHttpRequest纳入W3C规范的一年后,Google利用
-
ajax跨域请求之JSONP的使用之前在工作中遇到了跨域访问的问题,此次记录使用json的过程。注意:jsonp只适合类型为get的请求;只支持跨域HTTP请求这种情况,不能解决不同域的两个页面之间如何进行JavaScript调用的问题。 $.ajax({ type:"get", //请求方式,此处给post仍会以get方式提交 dataType:"jsonp",//预期服务器返回的数据类型 jsonp:"callback",//在一个jsonp请求中重写回调函数的名字 jsonpCallback:"callback",//为jsonp请求指定一个回调函数名 url:"http://127.0.0.1/login", //请求地址 data:"{name:'
-
跨域请求之jQuery的ajax jsonp的使用解惑 前天在项目中写的一个ajax jsonp的使用,出现了问题:可以成功获得请求结果,但没有执行success方法,直接执行了error方法提示错误——ajax jsonp之前并没有用过,对其的理解为跟普通的ajax请求差不多,没有深入了解;出现了这种错误,几经调试(检查后台的代码和js部分的属性设置)还是不行,让我感觉很是意外和不解。于是,决定仔细研究下ajax jsonp的使用,并将最后测试成功的学习经验和大家分享下! 首先,贴出可以成功执行的代码: (页面部分) 1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-t
-
JSONP原理与实现JSON with Padding(Padding 指包裹在服务端响应内容中 JSON 外层的函数名称)它与 Ajax 无任何关系jsonp优点兼容性好,在支持创建 script 标签对的旧版本浏览器中依旧可以良好支持。缺点仅支持GET方法动态创建脚本容易产生XSS攻击原理由于浏览器的同源策略限制,在目标域名、端口、协议不一致的情况下,将无法访问目标提供的资源。但是,HTML某些标签提供的src属性,不受该策略影响,因此可以通过该种方式获取目标资源。前端动态生成 script 标签对,并设置目标 URL 为 src 属性值。其中,目标 URL 通常会包含客户端 callback 参数名。服务端接收 callback 参数;服务端生成响应数据,并使用 callback 参数值包裹该响应内容(传递到客户端后作为函数的参数)。客户端加载完成目标资源后,响应内容将在 script 中变为正常的函数调用。实现需要服务端配合前端(原生JS)<script type="text/javascri
ajax jsonp原理相关课程
ajax jsonp原理相关教程
- 3.1 JSONP JSONP 是一个非常经典的解决跨域的方法。我们知道,在 HTML 中,一些资源的引用事实上是不会受到跨域限制的,比如 script 标签。浏览器在解析 HTML 的时候,解析到了 script 标签,会把相应的资源下载下来。我们可以利用这一点,来实现前后端信息的交互。3.1.1 JSONP 原理定义好回调函数,比方说命名为 callback ,并将函数名作为 url 的参数;添加 script 标签,指定的资源为目标域的方法,也就是上面的 url ;后端接收 GET 请求,返回 callback(responseData) 格式数据,把要返回的数据 responseData 传到 callback() 中;前端接收 javaScript 内容,执行了后端返回的 callback(responseData) ,这样就完成了一次前后端交互了。3.1.2 具体例子假如 HTML 有一个容器为 container,我们要通过 JSONP 的方式来为 container 插入一条内容,那么,我们可以这么做:3.1.2.1 HTML 关键代码<div id="container"></div>3.1.2.2 javaScript 关键代码// jsonp// 定义一个添加内容的回调函数window.addContent = function (content) { document.getElementById('container').innerHTML = content;}/*** 发送 JSONP 请求的函数* cb 为回调函数的函数名*/function sendJsonPRequest (cb) { // 创建 script 标签 const body = document.getElementsByTagName('body')[0]; const script = document.createElement('script'); script.type = 'text/javascript'; // 指定标签的 url ,callback 参数为回调函数的函数名 script.src = `http://localhost:8082/jsonp/get?callback=${cb}`; body.appendChild(script); // 添加到 body 最后面}sendJsonPRequest('addContent') // 执行发送 JSONP 请求显而易见,前端我们会创建一个 script 标签,并且附带定义好的回调函数的函数名传给服务端。与此同时,我们需要在服务端进行 JSONP 请求的响应。3.1.2.3 服务端关键代码router.get("/jsonp/get", function(req, res) { const cb = req.query.callback; // 读取请求附带的参数 callback const resData = '这是一条服务端返回的内容'; res.send(`${cb}(${JSON.stringify(resData)})`); // 返回 callback(resData) 格式的数据});3.1.2.4 效果从右边控制台可以看出来,我们成功创建了 JSONP 的请求,并且结果正如我们预期的执行了 addContent('这是一条服务端返回的内容'),界面上展示出插入的内容。3.1.3 JSONP 小结使用 JSONP 的方式,我们可以通过 script 标签绕过浏览器的跨域限制,进行前后端数据交互。不过另一方面,这种方法也很有局限性,我们只能够发送 GET 请求,无法满足更加复杂业务的需求。一般我们也不会推荐直接使用 JSONP 的方式来解决跨域问题。
- 5. Ajax 的工作原理 Ajax 相当于用户端和服务端的一个中间层,用来处理异步化的数据交互。这里涉及到两个重要的点:XMLHttpRequest 和 异步。先讲异步,异步指的是用户无需等待,异步操作不会阻碍当前用户的活动。在早期,对于我们的 Web 交互,每次用户发送请求,都会阻塞当前活动,进行页面重载。而在服务器响应请求之前,浏览器只能是一片空白。体验极其差!然而,使用异步就能够解决这个问题,浏览器端发送请求,但是不会阻塞用户当前的活动,也不会丢弃当前页面,数据一样可以进行交互和刷新。体验效果极佳!另一个 XMLHttpRequest 可以说是 Ajax 的核心技术。使用 XMLHttpRequest ,我们可以通过 JavaScript 向服务端发送请求,并且获取和处理服务端返回的数据,却不会阻塞用户活动,而仅仅只是局部动态更新,更加不会导致 web 页面频繁重载。Ajax 工作过程大致如下:JavaScript 通过 XMLHttpRequest 向后端发起异步请求,可以是 get 或者 post 等;服务端接收请求,处理并返回数据;JavaScript 通过 XMLHttpRequest 获取并解析服务端返回的数据内容;JavaScript 通过动态更新 DOM 或者执行其他操作。
- 6. Ajax 的优点 Ajax 技术的优势有如下几点:无刷新更新页面。抛弃了早期重载页面的方式,加快了请求的速度,提升了用户体验。减少客户端的内存消耗。采用更加轻量的数据提取做法,避免了客户端大量的冗余请求,减少了不必要的内存消耗。将部分传统技术中原本在服务端的工作转移到客户端来进行。 使用Ajax,一些数据的处理能够在客户端进行,减轻了服务端的压力。兼容性极好,几乎所有的浏览器都支持。不需要额外插件或者虚拟机即可使用。当然,Ajax 带来的最大的优势还是通过异步请求和处理数据的方式,取代了通过原始 Form 表单提交来更新数据及页面的方式,从而使得我们的 Web 应用成为了可能。
- Ajax 处理服务端响应 在浏览器发送 Ajax 请求之后,下一步骤自然是服务器响应。服务器在接收到请求之后会进行一系列处理步骤,最终返回结果。而与此同时,客户端会在接收到返回的结果之后进行界面的展示或者数据的处理。本章节主讲 Ajax 收到返回数据后处理服务器响应过程。
- AJAX Asynchronous JavaScript + XML(异步JavaScript和XML), 其本身不是一种新技术,而是一个在 2005年被Jesse James Garrett提出的新术语,用来描述一种使用现有技术集合的‘新’方法。(MDN)AJAX 是2005年提出的一种术语,并不代表某个特定的技术。其译名 异步JavaScript和XML 描述出了核心,就是使用 JavaScript 发送异步 HTTP 请求,这样就摆脱了想要和服务端交互,必须刷新页面的痛点。学习 AJAX 相关内容前,建议有一些简单的 HTTP 相关知识的储备,否则很难理解其工作流程。
- 4. 什么是 Ajax? 说这么多,那么什么是 Ajax 呢?简单来讲,Ajax 就是 JavaScript 基于 XMLHttpRequest 对象与服务端进行交互,向服务端发送一个请求,并且获取和处理服务器返回的内容。在这个过程中,我们可以使用 XML ,HTML 和 JSON 等格式的数据进行交互。并且,Ajax 拥有异步特质,我们可以在不刷新页面的情况下,通过交互数据,在页面上做局部的刷新等数据处理。
ajax jsonp原理相关搜索
-
ajax
android
a href
abap
abap开发
abort
absolutelayout
abstractmethoderror
abstracttablemodel
accept
access
access教程
accordion
accumulate
acess
action
actionform
actionlistener
activity
addeventlistener