效果:
当前文件地址为:http://127.0.0.1:8080/
所请求的文件地址和参数为:http://127.0.0.1:3000/sendjsonp?name=likeke&age=18&cb=callback1470904676170
直接上代码吧:
index.html
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> </head> <body> <p>姓名:<input type="text" name="" id="myname"></p> <p>年龄:<input type="text" name="" id="myage"></p> <input id="send" type="button" value="请求发送"> </body> </html> <script> var newjsonp=function(url,data,callback){ /*需要发送的参数值*/ var queryString = url.indexOf('?') == -1 ? '?' : '&'; /*允许只传入两个参数*/ if (3 == arguments.length) { for (var item in data) { queryString += item + '=' + data[item] + '&'; } }else if(2 == arguments.length){ callback=data; } /*为防止变量冲突,给函数名加上时间戳*/ var callbackName='callback'+(new Date().getTime()); /*将回调函数暴露到全局*/ window[callbackName]=function (data) { callback(data); /*为了防止多次请求就会创建多个script节点的问题,此处先删除前一个创建的节点*/ document.body.removeChild(scriptEle); }; queryString+='cb='+callbackName; /*创建script节点,同时会发出请求*/ var scriptEle=window.document.createElement('script'); scriptEle.src=url+queryString;//请求参数 window.document.body.appendChild(scriptEle); } send.onclick=function(){ newjsonp('http://127.0.0.1:3000/sendjsonp',{ name:'likeke', age:18 },function(data){ myname.value=data.name; myage.value=data.age; }); } </script>
后端代码(nodejs):
var express = require('express'); var app = express(); app.get('/sendjsonp', function (req, res) { var name=req.query.name,age=req.query.age,callback=req.query.cb; var data={ 'name':name, 'age':age } res.send(callback+'('+JSON.stringify(data)+')'); }); var server = app.listen(3000);
相关推荐
JSONP的核心思想是利用`<script>`标签的src属性可以跨域加载脚本的特点,通过动态创建`<script>`标签并指定一个可被服务器回调的函数名,服务器返回的脚本会调用这个函数并将数据作为参数传递。 **AJAX和JSONP跨域...
在本项目"JSONP跨域实现百度搜索功能(v1.0.0)"中,我们将深入探讨如何利用JSONP技术来实现在网页上嵌入一个能够进行百度搜索的功能。 首先,我们需要理解为什么需要JSONP。浏览器的同源策略是出于安全考虑,不允许...
2. JSONP原理:JSONP的基本思想是,服务器提供一个可以接受参数的JavaScript函数名,客户端在请求时传递这个函数名,服务器返回一个调用该函数并带有JSON数据的脚本,`<script>`标签加载这个脚本,从而实现跨域数据...
### JSONP 跨域请求数据实现手机号码查询实例分析 #### 前言 在现代Web开发中,跨域问题一直是前端开发者面临的一个常见难题。简单来说,由于浏览器的同源策略限制,当一个网页尝试从不同的源(即不同的协议、端口...
在JavaScript的世界里,由于同源策略的限制,浏览器禁止了不同源之间进行AJAX通信,但JSONP(JSON with Padding)作为一种巧妙的方式,允许我们绕过这个限制,实现在jQuery中进行跨域请求。本篇文章将深入探讨JSONP...
Ajax JSONP跨域处理是Web开发中的重要技术,通过JSONP,开发者可以在不违反同源策略的前提下实现跨域数据交互。虽然JSONP存在一些限制和安全隐患,但在许多场景下,它仍然是一个实用且有效的解决方案。随着技术的...
ajax jsonp跨域传参,里面有源码,不过写在txt中了,很适合调用别人的接口
JSONP(JSON with Padding)...总之,JSONP是jQuery中实现跨域访问的一种常见方法,尤其在不支持CORS的旧浏览器环境中非常有用。但随着技术的发展,CORS已成为更推荐的跨域解决方案,因为它提供了更多的控制和安全性。
标题提到的"利用jsonp跨域调用百度js实现搜索框智能提示",即利用JSONP技术调用百度提供的API,实现在搜索框中输入关键字时,显示智能提示的功能,类似于百度搜索引擎的自动补全。 **JSONP原理**: JSONP的工作机制...
- 创建一个`<script>`元素并设置其`src`属性为跨域资源的URL,并通过URL参数`jsonpCallback`指定上述定义的函数名。 - 将`<script>`元素插入到HTML文档中,当脚本加载完成时,浏览器会自动执行返回的函数,并将...
本文将深入探讨如何使用原生JavaScript实现一个简单的AJAX库,特别关注JSONP的实现。 首先,理解JSONP的基本原理是关键。JSONP利用了HTML中`<script>`标签不受同源策略限制的特点,通过动态创建`<script>`元素并...
JSONP(JSON with Padding)是一种跨域数据交互协议,它利用了`<script>`标签可以跨域请求资源的特性来实现JavaScript与服务器之间的通信。在JavaScript中,由于同源策略的限制,通常不能直接访问不同源的资源。但是...
【ASP.NET JSONP 实现 jQuery 跨域】 在 Web 开发中,由于浏览器的同源策略限制,JavaScript 无法直接跨域访问数据。为了解决这个问题,开发者常常使用 JSONP(JSON with Padding) 技术。ASP.NET 和 jQuery 结合使用...
本文将详细探讨JSONP的工作原理以及如何在实际项目中使用它来跨域获取JSON数据。 ### JSONP简介 JSONP全称为"JSON Padding",它并不是JSON的一种新格式,而是一种利用动态创建`<script>`标签来绕过同源策略的技巧...
本文将深入探讨两种主要的跨域解决方案:CORS(Cross-Origin Resource Sharing)和JSONP(JSON with Padding)。 ### CORS方案 CORS是一种现代浏览器支持的跨域策略,允许服务器声明哪些源可以访问其资源。服务器...
然而,JSONP提供了一种绕过这种限制的方法,使得前端开发者能够实现跨域请求。 ### JSONP原理 1. **函数定义**:在客户端,我们需要先在页面中定义一个函数,这个函数将会接收从服务器返回的数据。 2. **动态插入`...
JSONP(JSON with Padding)和AJAX是两种常见的在JavaScript中实现跨域数据请求的技术。在Web开发中,由于浏览器的同源策略限制,JavaScript不能直接向其他域名发送请求,但JSONP和AJAX通过特定的方式绕过了这个限制...
原生JS封装Ajax插件(同域、jsonp跨域)_.docx
原生JS封装Ajax插件(同域、jsonp跨域)_.pdf
AJAX与JSONP跨域访问问题小结 ...内容涵盖了从创建XMLHttpRequest对象,到使用AJAX发起异步请求,再到通过JSONP实现跨域访问的一系列知识点。对于开发者而言,这些内容都是实现现代Web应用中不可或缺的重要技术。