使用jsonp跨域请求
一、异步对象,不能实现跨域请求
在站点A中访问站点B的数据:
站点A代码:
window.onload = function () {
document.getElementById("btnAjax").onclick = doAjax;
}
function doAjax() {
var xhr = new XMLHttpRequest();
xhr.open("get", "http://www.ruanmou.net/C01Target.ashx", true);
xhr.setRequestHeader("If-Modified-Since", "");
xhr.onreadystatechange = function () {
if (xhr.readyState == && xhr.status == ) {
var res = xhr.responseText;
alert(res);
}
};
xhr.send(null);
}
<input type="button" value="使用异步请求跨域请求是错的" id="btnAjax" />
站点B代码:
C01Target.ashx中:
public void ProcessRequest(HttpContext context)
{
context.Response.ContentType = "text/plain";
context.Response.Write(“hello world”);
}
二、使用script标签实现跨域请求
站点A代码:
<script type="text/javascript" src="http://www.ruanmou.net/C01Target.ashx?callback=showData"></script>
function showData(data) {
for (var key in data) {
alert(data[key]);
}
}
站点B代码:
C01Target.ashx中:
public void ProcessRequest(HttpContext context)
{
string funName = context.Request.Params["callback"];
context.Response.ContentType = "text/plain";
string strDate = funName+"({\"name\":\"Xuj\",\"age\":\"18\"})";//返回数据为json格式
context.Response.Write(strDate);
}
三、jquery使用jsonp实现跨域请求
站点A代码:
window.onload = function () {
document.getElementById("btnAjax").onclick = doAjax;
}
function doJq() {
$.ajax("http://www.ruanmou.net/C01Target.ashx"), {
type: "get",//内部就是创建一个script标签
jsonp:"callback",//传的参数名,和服务器端一致
dataType: "jsonp",//指定回调的函数名
jsonCallback: "showData",
success: function () {
alert("");
}
});
}
function showData(data) {
for (var key in data) {
alert(data[key]);
}
}
使用jsonp跨域请求的更多相关文章
- .net学习之母版页执行顺序、jsonp跨域请求原理、IsPostBack原理、服务器端控件按钮Button点击时的过程、缓存、IHttpModule 过滤器
1.WebForm使用母版页后执行的顺序是先执行子页面中的Page_Load,再执行母版页中的Page_Load,请求是先生成母版页的控件树,然后将子页面生成的控件树填充到母版页中,最后输出 2.We ...
- JSONP跨域请求数据报错 “Unexpected token :”的解决办法
原文 http://www.cnphp6.com/archives/65409 Jquery使用ajax方法实现jsonp跨域请求数据的时候报错 “Uncaught SyntaxError: Une ...
- jQuery ajax的jsonp跨域请求
一直在听“跨域跨域”,但是什么是跨域呢?今天做了一些了解.(利用jQuery的jsonp) jQuery使用JSONP跨域 JSONP跨域是利用script脚本允许引用不同域下的js实现的,将回调方法 ...
- Django学习---jsonp跨域请求
jsonp跨域请求 我们通过ajax进行跨域请求的时候,请求发送过去,但是在接受返回数据的时候浏览器会进行拦截. 这是由于浏览器存在同源策略机制,同源策略阻止从一个源加载的文档或脚本获取或设置另一个源 ...
- jsonp跨域请求响应结果处理函数(python)
接口测试跨域请求接口用的jsonp,需要将回调函数里的json字符串提取出来. jsonp跨域请求的响应结果格式: callback_functionname(json字符串). #coding:ut ...
- 原生JavaScript封装的jsonp跨域请求
原生JavaScript封装的jsonp跨域请求 <!DOCTYPE html> <html lang="en"> <head> <met ...
- jsonp 跨域请求
背景: JavaScript是一种在Web开发中经常使用的前端动态脚本技术.在JavaScript中,有一个很重要的安全性限制,被称为"Same-Origin Policy"(同源 ...
- 使用JSONP跨域请求数据
下面代码,可以使用JSONP进行跨域请求数据,Insus.NET记录以下,以备忘记.
- jQuery jsonp跨域请求
跨域的安全限制都是对浏览器端来说的,服务器端是不存在跨域安全限制的. 浏览器的同源策略限制从一个源加载的文档或脚本与来自另一个源的资源进行交互. 如果协议,端口和主机对于两个页面是相同的,则两个页面具 ...
随机推荐
- HW7.2
import java.util.Scanner; public class Solution { public static void main(String[] args) { Scanner i ...
- cdh4
libhadoop.so其实是后面安装impala时要用到 此处配置环境变啦时注意 下 export CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/l ...
- 如何把匿名类型.GetType()返回的对象传进泛型里面[转]
//怎么取得匿名类型的Type放到 //泛型T当中?? var 匿名 = new { A = 0, B = 1 }; Type t = 匿名.GetType(); //然后下面 var xx = db ...
- android中setOnClickListener的那点事
最近在写代码中,发现在xml文件设置了android:clickable="false",之后这个View还是可点的. 后来发现,是代码中对View设置了监听事件(setOnCli ...
- FreeModbus 精简版本(Only RTU) for M128 (Modbus Slave)
1.硬件连接: M128 PD3 INT3/TXD1 ---> PC 232COM Pin 2 PD2 INT2/RXD1 ---> PC 232COM Pin 3 GND ...
- C++学习笔记(四):枚举
枚举用来代替静态常量,优点就是可以确定值的范围,而常量则无法确定范围: 常量表示法: ; ; ; ; ; bool func(int type) { //范围检查 || type > ) thr ...
- 《JavaScript高级程序设计》 读书笔记(一)
标签的位置 按照传统的做法,所有<script>元素都应该放在页面的<head>元素中,例如: <!DOCTYPE html> <html> <h ...
- cocos2d-x 将cocosbuilder输出文件映射成对象的原理
转自:http://www.cnblogs.com/fox7nights/archive/2013/02/21/2920640.html 一.调用代码 CCNode* GameOverScene::l ...
- Oracl数据库管理方面的资料(查询sga,查看oracle数据库名称sid,查看oracle数据库名称,查看表空间,修改表空间名称)
显示Oracle sga相关信息: SQL> show sga Total System Global Area 105978600 bytes Fixed Size 453352 bytes ...
- PCL 点云数据操作 OpenCV遍历数据
1.对于点云类型实例cloud,对其第i个点进行赋值操作,使用cloud.point[i].x 和 cloud.point[i].y 和cloud.point[i].z 分别对其XYZ坐标赋值. cl ...