一.jsonp
,与填充,Jsonp (JSON)是JSON的一种“使用模式”,可以让网页从别的域名(网站)那获取资料,即跨域读取数据。
因为同源策略,(
三。实例
当使用ajax本地调用url=' http://127.0.0.1/ajax/json/test.php?data=' https://www.yisu.com/zixun/+ jsonobj + ", r=" + math . random();会出现下面的错误:不能跨域请求
然而,
使用Jsonp就可以解决这个问题:具体代码如下:
& lt; script>=false, var 结果; function 检查(){ 如果(resultform ()) { return 真实; } 其他{ return 假; } } ,,,,function checkform () { ,,,,,,,,,,,var usernameobj=. getelementbyid(“用户名”)value; ,,,,,,,,,,,var usernumobj=. getelementbyid (“usernum”) value; ,,,,,,,,,,,var 数据=https://www.yisu.com/zixun/{用户名:usernameobj usernum: usernumobj}; var jsonobj=JSON.stringify(数据); url=' http://127.0.0.1/ajax/json/test.php?data=' https://www.yisu.com/zixun/+ jsonobj + ", r=" + math . random() + "和callbackname=jp ",,,,,,,,,, ,,,,,,,,,,,//动态添加脚本标签 ,,var scripttag=document.createElement(“脚本”); ,,,,,,,,,,,scripttag.setAttribute (" src "、url); ,,,,,,,,,,,document.body.appendChild (scripttag); ,, ,,,,,,, } ,,,//客户端回调函数 ,,,,,,var 摩根大通=函数(数据){ ,,,,,,,,,,,,,var 技巧=. getelementbyid(“建议”); ,,,,,,,,,,,,,如果(数据(“用户名”)==笆弧?{ ,tips.innerHTML=" & lt; h2>你输入的名字是:“+数据(“用户名”)+“& lt;/h2>”;=true,,结果; ,,,,,,,} ,,,,,,,,,,,,,其他的{ ,,tips.innerHTML=" & lt; h2>你输入的有误& lt;/h2>”; 结果=false; ,,,} ,,,,,,,,,,,,,resultform (); ,,,,,,,,,,,,,, } ,,,,,,,,,,,,,,,,,,,,,, function resultform () { 如果(结果){ return 真实; } 其他{ alert("您输入的有误”); return 假; } } & lt;/script> php页面代码: php & lt; ? ,,,data 美元;=,json_decode ($ _GET['数据'],真正的); ,,,$ callbackname=$ _GET [' callbackname ']; ,,,echo callbackname 美元;,。”(“.json_encode ($ data)”。)”,; ,?在
效果图: