前言
做B/S项目的时候,我们一般使用jquery+ashx来实现异步的一些操作,比如后台获取一些数据到前台,但是如果ashx文件不在本项目下,引用的是别的域下的文件,这时候就访问不了。关于jsonp其实是老生常谈的话题,园中也有不少文章介绍,可以把jsonp看成一个协议或模式,这边就不多说,我们只看示例。
正常实现
我们先看下代码:
public void ProcessRequest(HttpContext context)
{
string type = context.Request.QueryString["type"].ToString();
string result = "";
switch (type)
{
case "":
result = "one";
break;
case "":
result = "two";
break;
case "":
result = "three";
break;
default:
result = "other";
break;
}
context.Response.ContentType = "text/plain";
context.Response.Write(result);
}
前台js代码:
<script type="text/javascript">
function getString() {
$.ajax({
type: "POST",
url: "GetStringDemo.ashx?type=" + $("#txtValue").val(),
timeout: 20000,
beforeSend: function (XMLHttpRequest) {
$("#div_clear").html("正在获取,请稍候...");
},
success: function (data, textStatus) {
$("#div_clear").html("获取值:" + data);
},
error: function (XMLHttpRequest, textStatus, errorThrown) {
$("#div_clear").html("获取出错!");
}
});
}
</script>
上面的代码不需要解释太多,就是前台通过ajax传过去参数,ashx进行处理并返回处理结果,前台呈现,这是我们一般正常通过ashx做的异步操作,注意现在是前后台在同一个项目下。
运行结果:
aaarticlea/png;base64,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" alt="" />
jsonp跨域
上面的示例ajax代码中url如果改成别的域名下的ashx文件,就会出现访问错误,通过jsonp可以解决跨域问题,上面的代码我们修改下:
ashx代码:
public void ProcessRequest(HttpContext context)
{
string type = context.Request.QueryString["type"].ToString();
string callback = HttpContext.Current.Request["jsoncallback"];
string result = "";
switch (type)
{
case "":
result = "one";
break;
case "":
result = "two";
break;
case "":
result = "three";
break;
default:
result = "other";
break;
}
context.Response.ContentType = "application/json";
context.Response.ContentEncoding = System.Text.Encoding.UTF8;
context.Response.Write(callback + "({\"result\":\"" + result + "\"})");
context.Response.End();
}
前台js代码:
<script type="text/javascript">
function getString() {
$.ajax({
url: "http://localhost:8975/GetStringDemo.ashx?jsoncallback=?",
dataType: "jsonp",
data: { "type": $("#txtValue").val() },
beforeSend: function (XMLHttpRequest) {
$("#div_clear").html("正在获取,请稍候...");
},
success: function (data, textStatus) {
$("#div_clear").html("获取值:" + data.result);
},
error: function (XMLHttpRequest, textStatus, errorThrown) {
$("#div_clear").html("获取出错!");
}
});
}
</script>
注意上面的url,ashx和前台页面并不是在一个项目下。
运行结果:
aaarticlea/png;base64,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" alt="" />
示例代码下载:jsonp跨域+ashx.rar
jsonp跨域+ashx(示例)的更多相关文章
-
jsonp跨域+ashx
jsonp跨域+ashx(示例) 前言 做B/S项目的时候,我们一般使用jquery+ashx来实现异步的一些操作,比如后台获取一些数据到前台,但是如果ashx文件不在本项目下,引用的是别的域下的文件 ...
-
jsonp 跨域请求
背景: JavaScript是一种在Web开发中经常使用的前端动态脚本技术.在JavaScript中,有一个很重要的安全性限制,被称为"Same-Origin Policy"(同源 ...
-
jsonp 跨域原理详解
JavaScript是一种在Web开发中经常使用的前端动态脚本技术.在JavaScript中,有一个很重要的安全性限制,被称为“Same-Origin Policy”(同源策略).这一策略对于Java ...
-
JSONP跨域原理和jQuery.getJSON用法
JSONP是一个非官方的协议,它允许在服务器端集成Script tags返回至客户端,通过javascript callback的形式实现跨域访问(这仅仅是JSONP简单的实现形式).本文主要介绍JS ...
-
WebApi2 jsonp跨域问题
一:故事背景 以前在写WebApi2的时候,一直是用作前后端分离(WebApi2 +angularjs),可是最近自己在给WebApp写接口的时候遇到了很多坑,总结一下就是跨域问题.而跨域问题 ...
-
轻松搞定JSONP跨域请求
一.同源策略 要理解跨域,先要了解一下"同源策略".所谓同源是指,域名,协议,端口相同.所谓"同源策略",简单的说就是基于安全考虑,当前域不能访问其他域的东西. ...
-
jsonp跨域简单应用(一)
转载:http://www.cnblogs.com/cyg17173/p/5865364.html ashx+jsonp+document.referrer -- 一年前学的JSONP 跨域,一年 ...
-
JSONP跨域访问百度实现搜索提示小案例
一.JSONP简介 JSONP 全称 JSON with padding(填充式 JSON 或参数式 JSON),JSONP实现跨域请求的原理,就是动态创建<script>标签,然后利用& ...
-
深入浅出:了解jsonp跨域的九种方式
什么是“”跨域”: 跨域访问,简单来说就是 A 网站的 javascript 代码试图访问 B 网站,包括提交内容和获取内容.由于安全原因,跨域访问是被各大浏览器所默认禁止的.当一个域与其他域建立了信 ...
随机推荐
-
vector、list、deque三者比较
1.vector是一段连续的内存块,而deque是多个连续的内存块,list是所有数据元素分开保存,可以是任何两个元素都没有连续. 2.vector的查询性能最好,并且的末端增加数据也很好,除非它重新 ...
-
【NOI2011】道路修建 BFS
[NOI2011]道路修建 Description 在 W 星球上有 n 个国家.为了各自国家的经济发展,他们决定在各个国家之间建设双向道路使得国家之间连通.但是每个国家的国王都很吝啬,他们只愿意修建 ...
-
pipe row的用法, Oracle split 函数写法.
为了让 PL/SQL 函数返回数据的多个行,必须通过返回一个 REF CURSOR 或一个数据集合来完成.REF CURSOR 的这种情况局限于可以从查询中选择的数据,而整个集合在可以返回前,必须进行 ...
-
POJ 3020 Antenna Placement 解题报告
题意就不说了,求二部图最大匹配. 问题是怎么建图…… 给定的条件中,h<40,w<10,所以笔者直接默认所有情况的地图都是40*10,当然,超出范围的便是空城o. 然后给城市编号.一个城市 ...
-
Android学习——百度地图开发定位与显示Demo
百度地图给我们提供了很丰富的API供我们进行二次开发.百度地图的SDK与定位SDK在今年6月份进行了更新. 地图更新为3.0,定位更新为4.2.百度说:这次更新对接口有了较大部分的调整,与之前版本号不 ...
-
ubuntu上lamp环境搭建
首先,介绍个彻底删除linux已经安装的软件的方法. sudo apt-get purge mysql-server mysql-client mysql-common mysql-server-5. ...
-
C#连接数据库MD5数据库加密
创建StringHelper类 首先数据库里的资料是加密了的. 创建将指定的字符串加密为MD5密文方法 public static string ToMD5(string source){ Strin ...
-
免费的ASP.NET空间和SQLServer2008 Express
Login Register Web Hosting Support Forum Ask Experts Articles ASP.NET 4.5 & SQL 2012 Hosting P ...
-
SFINAE简单实例
SFINAE(Substitution failure is not an error),是C++11以来推出的一个重要概念,这里,只是简单举一个例子,可能会有人需要. // 添加 scalar nu ...
-
seq2seq模型以及其tensorflow的简化代码实现
本文内容: 什么是seq2seq模型 Encoder-Decoder结构 常用的四种结构 带attention的seq2seq 模型的输出 seq2seq简单序列生成实现代码 一.什么是seq2seq ...