使用jsonp进行跨站点数据访问
使用jsonp 可以解决ajax 的跨域问题,使用起来比较简单。
具体的测试环境搭建如下
1.一个简单的MVC 站点
2.一个简单的html文件(这次的测试是在web 站点中,当然可以是一个简单的html 文件)
MVC 的设计代码如下
public class ActionloginController : Controller
{
public ActionResult dalong(string name)
{
var list = new List<User>();
for (int i = 0; i < 20000; i++)
{
list.Add(new User() { userage = i + 1, username = name });
}
var tep = Newtonsoft.Json.JsonConvert.SerializeObject(list);
var requesest= HttpContext.Request["callback"];
HttpContext.Response.ContentType = "text/plain";
var respond = HttpContext.Response;
var data = new User() { userage = 333, username = "dddddd" };
var datatep = Newtonsoft.Json.JsonConvert.SerializeObject(data);
respond.Write(requesest + "(" + tep + ")");
Response.End();
return null;
}
}
以上代码就是在controller 中编写的action 就是进行数据集合的序列化以及解析使用jquery ajax 方法 返回的jsonp 请求
callback 是我们定义的处理回调函数
html端的代码
ajax 的代码如下:
function TestAjax() {
$.ajax({
type: "get",
async: false,
url: "http://localhost:55721/Actionlogin/dalong", //实际上访问时产生的地址为: ajax.ashx?callbackfun=jsonpCallback&id=10
data: { name: "dalonrrr" },
cache: false, //默认值true
dataType: "jsonp",
jsonpCallback: "dalongcallback",
//自定义的jsonp回调函数名称,默认为jQuery自动生成的随机函数名
//如果这里自定了jsonp的回调函数,则success函数则不起作用;否则success将起作用
success: ongetdata,
error:function(){
alert('fail');
}
});
}
ongetdata 方法如下:
function ongetdata(result) {
var data = result;
listdemo = result;
var tep = "";
for (var i = 0; i < 3; i++) {
tep += "user name is :" + data[i].username + "user age is :" + data[i].userage + "\n";
}
}
listdemo 为全局变量进行数据的存储
数据显示的代码如下:
function dispaly() {
var ul = document.getElementById('list');
for (var i = 0; i < listdemo.length; i++) {
var li = document.createElement('li');
li.innerHTML = '<p> username is :' + listdemo[i].username + 'user age is :' + listdemo[i].userage + '</p>';
ul.appendChild(li);
}
}
进行测试的界面
jquery ajax 生成的请求参数:

服务器返回的请求数据:

对应的json数据:

以上就是在学习测试中的一些记录。
使用jsonp进行跨站点数据访问的更多相关文章
- jsonp实现跨域资源访问
平时项目中处理ajax跨域资源请求时,例如www.example2.com上的某个页面要请求www.example1.com的数据,我们使用得较多的是jsonp方式.jsonp通过JavaScript ...
- SQL Server的跨服务器数据访问方法
想要在SQL服务器上访问另一个服务器的数据,可以采用此方式: 1.建立数据库链接: 右键“链接服务器”,选择“新建链接服务器...” 以上的操作也可以通过SQL脚本实现: exec sp_addlin ...
- 跨站数据请求哪家强——青出于蓝的jsonp
/* * 跨站数据请求哪家强--青出于蓝的jsonp数据格式 * @author gj * @date 2017-09-15 */ 先哲有云"青,取之于蓝,而青于蓝:冰,水为之,而寒于水&q ...
- JSONP实现跨域
首先提出:什么是跨域?如何解决跨域? 跨域可以简单的理解为从一个域名访问另一个域名,由于javascript的同源政策的限制,出于安全的考虑,不允许浏览器这么做.比如a.com 域名下的js无法操作b ...
- jsonp现实跨域Ajax CORS
浏览器有一个很重要的概念——同源策略(Same-Origin Policy).所谓同源是指,域名,协议,端口相同.不同源的客户端脚本(javascript.ActionScript)在没明确授权的情况 ...
- 使用Jsonp实现跨域请求
来自百度百科的一段话: JSONP(JSON with Padding)是JSON的一种“使用模式”,可用于解决主流浏览器的跨域数据访问的问题.由于同源策略,一般来说位于 server1.exampl ...
- jsonp实现跨域访问
要实现JSONP跨域访问,首先就要了解什么是跨域?然后JSONP与JSON的关系? 1.什么是跨域? 跨域简单的说就是一个域名下的程序和另一个域名下的程序做数据交互.比如说:现有一个http://ww ...
- 深入了解jsonp解决跨域访问
在这个项目中,我们做的充分利用jsonp这是一个特点跨界,完成简单的单点登录认证和权限控制的统一.道,各有各的优点.各有各的优点,选择什么方式实现全然取决于我们自己或者项目经理的开发经验,对各种框架的 ...
- Python Django框架笔记(四):数据分页和CSRF跨站点请求伪造
(一)数据分页 可以参考 https://docs.djangoproject.com/en/2.0/topics/pagination/ 模板:如果只要显示 1.2.3.4.5.6....的话, ...
随机推荐
- codeforces 487a//Fight the Monster// Codeforces Round #278(Div. 1)
题意:打怪兽.可增加自己的属性,怎样在能打倒怪兽的情况下花费最少? 这题关键要找好二分的量.一开始我觉得,只要攻击到101,防御到100,就能必胜,于是我对自己的三个属性的和二分(0到201),内部三 ...
- Java网络编程和NIO详解开篇:Java网络编程基础
Java网络编程和NIO详解开篇:Java网络编程基础 计算机网络编程基础 转自:https://mp.weixin.qq.com/s/XXMz5uAFSsPdg38bth2jAA 我们是幸运的,因为 ...
- NOJ-1581 筷子 (线性DP)
题目大意:有n支筷子,已知长度,定义一双筷子的质量等于长度的平方差,问能否分成k双?若能,输出所有筷子的最小质量和. 题目分析:先将筷子按长度从小到大排序,定义状态dp(i,j)表示将前 i 支筷子分 ...
- OAF系统更新默认LOGO图标和主页环境描述
更新EBS OAF系统中默认的LOGO图标和主页的环境描述 左上角的ORACLE图片位置在 登录界面左上角oracle LOGO图片为GIF格式,大小155*20 背景透明.文件名为:FNDSSC ...
- 使用API更新供应商名称及曾用名
原文地址 更新供应商名称 EBS R12 (12.1.3) 更新供应商名称或替代供应商名称不能直接使用 pos_vendor_pub_pkg.update_vendor(p_vendor_rec =& ...
- 异常检测——局部异常因子(Local Outlier Factor ,LOF)算法
在中等高维数据集上执行异常值检测的另一种有效方法是使用局部异常因子(Local Outlier Factor ,LOF)算法.1.算法思想 LOF通过计算一个数值score来反映一个样本的异常程度.这 ...
- PHP:第一章——PHP中的goto语句和
goto语句: <?php header("Content-Type:text/html;charset=utf-8"); /*goto语句:可以代替break*/ //例1 ...
- PHP:php中的双引号和单引号的区别
双引号: $a="369"; $b="$a"; echo $b;//输出:369 单引号: $a="369"; $b='$a'; echo ...
- Jquery中bind(), live(), on(), delegate()四种注册事件的优缺点,建议使用on()
jquery中注册的事件,注册事件很容易理解偏差,叫法不一样.我第一反应就是如何添加事件,使用onclick之类的,暂时不讨论js注册事件的方法. 也看到园内前辈写过相关的帖子,但不是很详细,我找到了 ...
- Python & PyCharm & Django 搭建web开发环境
一.安装软件 1.安装 Python 2.7.PyCharm.pip(Python包管理工具).Django ( pip install Django) 二.部署 1.PyCharm 新建Django ...