服务 脚本 call local ati ashx 页面 ice
一、同源策略
一个页面的 ajax 只能获取这个页面相同源 (协议、域名、端口号都必须相同) 的数据。
二、jsonp 方法
1、json 和 jsonp
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式
JSONP 是 JSON with Padding 的略称。它是一个非官方的协议,它允许在服务器端集成 Script tags 返回至客户端,通过 javascript callback 的形式实现跨域访问
2、解决跨域的原理:
首先,创建一个回调函数 (function callback(data)
),然后在远程服务上调用这个函数 (callback({message:"success"})
) 并且将 JSON 数据形式作为参数传递,完成回调。
将 JSON 数据填充进回调函数,这就是 JSONP 的 JSON+Padding 的含义.
3、jquery 实现 jsonp
可以使用 $.getJSON(url,[data],[callback]) 方法:
- $.getJSON("http://localhost:20002/MyService.ashx?callback=?",
- function(data) { //这样getJSON方法才会知道是用JSONP方式去访问服务,会自动生成一个函数名 alert(data.name + " is a a" + data.sex); });
如需自定义函数名
- $.ajax({
- url: "http://localhost:20002/MyService.ashx?callback=?",
- dataType: "jsonp",
- jsonpCallback: "person",
- //自定义的函数名 success:function(data){ alert(data.name + " is a a" + data.sex); } });
web 前端学习历程 -- 跨域问题
padding 服务 脚本 call local ati ashx 页面 ice
来源: http://www.bubuko.com/infodetail-2087543.html