使用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进行跨站点数据访问的更多相关文章

  1. jsonp实现跨域资源访问

    平时项目中处理ajax跨域资源请求时,例如www.example2.com上的某个页面要请求www.example1.com的数据,我们使用得较多的是jsonp方式.jsonp通过JavaScript ...

  2. SQL Server的跨服务器数据访问方法

    想要在SQL服务器上访问另一个服务器的数据,可以采用此方式: 1.建立数据库链接: 右键“链接服务器”,选择“新建链接服务器...” 以上的操作也可以通过SQL脚本实现: exec sp_addlin ...

  3. 跨站数据请求哪家强——青出于蓝的jsonp

    /* * 跨站数据请求哪家强--青出于蓝的jsonp数据格式 * @author gj * @date 2017-09-15 */ 先哲有云"青,取之于蓝,而青于蓝:冰,水为之,而寒于水&q ...

  4. JSONP实现跨域

    首先提出:什么是跨域?如何解决跨域? 跨域可以简单的理解为从一个域名访问另一个域名,由于javascript的同源政策的限制,出于安全的考虑,不允许浏览器这么做.比如a.com 域名下的js无法操作b ...

  5. jsonp现实跨域Ajax CORS

    浏览器有一个很重要的概念——同源策略(Same-Origin Policy).所谓同源是指,域名,协议,端口相同.不同源的客户端脚本(javascript.ActionScript)在没明确授权的情况 ...

  6. 使用Jsonp实现跨域请求

    来自百度百科的一段话: JSONP(JSON with Padding)是JSON的一种“使用模式”,可用于解决主流浏览器的跨域数据访问的问题.由于同源策略,一般来说位于 server1.exampl ...

  7. jsonp实现跨域访问

    要实现JSONP跨域访问,首先就要了解什么是跨域?然后JSONP与JSON的关系? 1.什么是跨域? 跨域简单的说就是一个域名下的程序和另一个域名下的程序做数据交互.比如说:现有一个http://ww ...

  8. 深入了解jsonp解决跨域访问

    在这个项目中,我们做的充分利用jsonp这是一个特点跨界,完成简单的单点登录认证和权限控制的统一.道,各有各的优点.各有各的优点,选择什么方式实现全然取决于我们自己或者项目经理的开发经验,对各种框架的 ...

  9. Python Django框架笔记(四):数据分页和CSRF跨站点请求伪造

    (一)数据分页  可以参考  https://docs.djangoproject.com/en/2.0/topics/pagination/ 模板:如果只要显示 1.2.3.4.5.6....的话, ...

随机推荐

  1. android-------高德地图两点路线和多个点路线绘制

    最近朋友需要两点路线和多个点路线绘制这个功能,帮忙弄了一下,写这篇博客与大家分享一下. 两点路线 是起点和终点两个经纬度点,高德绘制出路线,可以实现实线和虚线功能 效果图:    相关属性: mPol ...

  2. P2048 [NOI2010]超级钢琴 (RMQ,堆)

    大意: 给定n元素序列a, 定义一个区间的权值为区间内所有元素和, 求前k大的长度在[L,R]范围内的区间的权值和. 固定右端点, 转为查询左端点最小的前缀和, 可以用RMQ O(1)查询. 要求的是 ...

  3. uva-11426-数论

    https://vjudge.net/problem/UVA-11426#author=0 求 SUM{ gcd(i,j) | 1<=i<j<=n}, n<4000001. 令 ...

  4. 4.2 event

    using System; public delegate void DownloadStartHandler(object sender, DownloadStartEventArgs e); // ...

  5. VirtualBox + Centos 使用NAT + Host-Only 方式联网

    一.准备工作 1. VirtualBox 2. CentOS镜像 备注:我这里准备好了需要下载的文件,有需要的话可以下载一下,分别是VirtualBox-5.1.24-117012-Win.exe,C ...

  6. 对LOV中的值进行强制验证

    当LOV之中只有一个LovMap返回当前ITEM时,修改了LOV输入框的值,会弹出验证窗口,若此时忽略此窗口,在进行下一步的时候不会去验证此LOV中的值是否一定在可选列表中. 解决方式, 1.在页面加 ...

  7. spring cloud学习(七)Spring Cloud Config(续)

    Spring Cloud Config(续) 个人参考项目 个人博客 : https://zggdczfr.cn/ 个人参考项目 : (整合到上一个案例中)https://github.com/Fun ...

  8. 微信小程序跨页面获取数据示例

    index.wxml <navigator class="navs" url="{{urls}}"> 中国 </navigator> i ...

  9. js获得焦点和失去焦点那些事

    <!doctype html> <html> <head> <meta charset="utf-8"> <meta name ...

  10. java poi 写入大量数据到excel中

    最近在利用poi往excel中写入大量数据时,发现excel2003最多只支持65535条,大量数据时容易造成oom,上网查了一下api,发现目前对于2003,每个sheet最多支持65535条,若数 ...