首页 > 代码库 > 笔记-Ajax[4]-JSONP跨域获取数据。
笔记-Ajax[4]-JSONP跨域获取数据。
JS的跨域:跨域名获取数据,a域名获取b域名中的数据。
解决跨域获取数据的方法也叫JSONP(JSON and Padding)
JSONP方法:
1:服务器代理:XMLHttpRequest代理文件2:script标签:jsonp(常用);//利用script标签的src引入外部文件的功能,src能够引入任何的文件的类型3:location.hash方式:iframe4:window.name方式5:flash方式6:html5的postMessage方式
例子:百度输入数据下拉框提示功能
布局代码:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title>无标题文档</title><link rel="stylesheet" href="css/index.css" type="text/css" /><script type="text/javascript" src="js/index.js"></script></head><body><input type="text" id="content"/><ul id="lists"></ul></body></html>
css代码:
#content{width:300px;height:40px;line-height:40px;border:1px solid #ccc;font-size:16px;}#lists{margin:0px;list-style:none;padding:0px;border:1px solid #ccc;width:300px;display:none;}#lists li a{display:block;width:300px;height:35px;line-height:35px;font-size:14px;text-decoration:none;color:#C60;}#lists li a:hover{background:#ccc;}
javascript代码:
// JavaScript Documentfunction getData(data){ var oUl=document.getElementById("lists"); var listContents=""; if(data.s.length){ oUl.style.display="block"; for(var i=0;i<data.s.length;i++){ listContents+="<li><a href=http://www.mamicode.com/‘http://www.baidu.com/#wd="+data.s[i]+"&rsv_bp=0&tn=baidu&rsv_spt=3&ie=utf-8&rsv_sug3=4&rsv_sug4=361&rsv_sug1=4&f=3&rsp=0&inputT=3257‘ target=‘_blank‘>"+data.s[i]+"</a></li>"; } oUl.innerHTML=listContents; }else{ oUl.style.display="none"; }}window.onload=function(){ var oContent=document.getElementById("content"); var oUl=document.getElementById("lists"); oContent.onkeyup=function(){ if(this.value!=""){ var oScript=document.createElement("script"); oScript.src="http://suggestion.baidu.com/su?wd="+this.value+"&cb=getData"; document.getElementsByTagName(‘head‘)[0].appendChild(oScript); }else{ oUl.style.display="none"; } }}
效果:
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。