ajax跨域问题的实例
今天图老师小编给大家介绍下ajax跨域问题的实例,平时喜欢ajax跨域问题的实例的朋友赶紧收藏起来吧!记得点赞哦~
要解决ajax跨域问题,网上给出的方法有二:
1是构建服务器端的代理。简而言之,就是ajax中调用的实质还是本机的url,而服务器端替js去取回远端地址。
2.利用script标记,生成一个标签。在js加载完成后,再执行后续操作。
就是将原来新建xmlHTTPrequest对象的操作改成了新建script标签的操作.
这里给出一个例子:
#ajah.js
varAjah=function(url,varname,handleSuccess,handleFailure){
/**
*handleSuccess,handleFailuremustbefunctions
**/
script=document.createElement("script");
script.src=url;
varhandler=function(str)
{
handleSuccess(str);
}
script.onload=function()
{
varjson=eval(varname);
handler(json);
}
if(window.ie)
{
script.onreadystatechange=function()
{
if(script.readyState=='complete'||script.readyState=='loaded')
{
varjson=eval(varname);
if(typeofjson!='undefined')
{
handler(json);
}
}
}
}
document.body.appendChild(script);
}
而在网页中应这样调用:
#demo.html
pre
!DOCTYPEhtmlPUBLIC"-//W3C//DTDHTML3.2//EN"
html
head
metaname="generator"content=
"HTMLTidyforLinux(vers1September2005),seewww.w3.org"
title/title
scriptsrc="mootools.js"/script
scriptsrc="ajah.js"/script
/head
body
script
varajah=newAjah("data.js","json198",function(str){
console.debug("returned:");
console.debug(str);
},
function(str){});
/script
/body
/html
/pre
被调用的数据文件如下
#data.js
varjson198="hello,thisisjson198";
funcitonAjah(url,varname,handleSuccess,handleFailure){…}
Ajah这个构造函数调用四个参数:
url:远端地址
varname:远端返回数据的变量名
handleSuccess:加载完毕后加载的函数
handleFailure:暂时没用上