跨域之于jquery实现方式有所局限性
以下介绍jquery+ajax结合asp实现异步调取跨域信息的方法和一些基本代码:
一:asp页面的代码
<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>
<%
'----------------------------------说明文档-------------------------------------------------------------------------------------
'xmlObj XML对象
'urlStr 访问页面链接
'appendStr 拼接字符串
'method 传送方式
'userID 访问时需要输入的用户名
'passWord 访问时需要输入的密码
'async 如果是异步通信方式(true),客户机就不等待服务器的响应;如果是同步方式(false),客户机就要等到服务器返回消息后才去执行其他操作
'callBackStr 返回数据类型
'----返回数据类型说明----
'responseText:将返回消息作为文本字符串;
'responseBody:将返回消息作为HTML文档内容;
'responseXML:将返回消息视为XML文档,在服务器响应消息中含有XML数据时使用;
'responseStream:将返回消息视为Stream对象
'----------------------------------传值说明--------------------------------------------------------------------------------------
'url 接收访问的url (不加http://)
'apstr 接收传值
'md 传值方式
'uid 用户名
'pwd 密码
'async 通信方式(0 --- True(异步) 1 --- False(同步))
'back 返回数据类型 (0--返回文本字符串 1--返回HTML文档内容 2--返回XML文档 3--返回Stream对象)
'------------------------------------------------------------------------------------------------------------------------------
'----------------------------------传值接收-------------------------------------------------------------------------------------
urlStr_request="http://"&unescape(request("url"))
appendStr_request=request("apstr")
method_request=request("md")
userID_request=unescape(request("uid"))
passWord_request=unescape(request("pwd"))
async_request=request("async")
callback_request=request("back")
select case async_request
case 0
async_request=true
case 1
async_request=false
case else
async_request=false
end select
dim xmlObj,urlStr,callBackStr,appendStr,method,userID,passWord,async
urlStr=urlStr_request
appendStr=appendStr_request
urlLink=urlStr&"?"&appendStr
method=method_request
userID=userID_request
passWord=passWord_request
async=async_request
'response.Write "urlStr="&urlStr&"<br>callBackStr="&callBackStr&"<br>appendStr="&appendStr&"<br>method="&method&"<br>userID="&userID&"<br>passWord="&passWord&"<br>async="&async
Set xmlObj = server.CreateObject("Microsoft.XMLHTTP")
xmlObj.Open method,urlLink,async,userID,passWord
xmlObj.send()
select case callback_request
case 0
callback_request=xmlObj.responseText
case 1
callback_request=xmlObj.responseBody
case 2
callback_request=xmlObj.responseXML
case 3
callback_request=xmlObj.responseStream
case else
callback_request=xmlObj.responseText
end select
callBackStr=callback_request
Set xmlObj = nothing
response.Write callBackStr
%>
<script language="javascript">
$(function(){
var url_request="192.168.0.49:8008/mongopie/jibopapercms/_query", //访问的页面(不带http://)
apstr_request="", //接收访问页面的传值
md_request="get", //传值方式
uid_request="", //接收访问页面的用户名
pwd_request="", //接收访问页面的密码
async_request="1", //0为接口页面的异步,1为接口页面的同步 (默认同步)
back_request="0", //返回方式(0-字符串 1-html 2-xml 3-stream) (默认字符串)
url="XMLRequest/getUrlRequestInfo.asp", //jqueryAjax异步页面
data="";
data=data+"url="+escape(url_request);
data=data+"&apstr="+escape(apstr_request);
data=data+"&md="+md_request;
data=data+"&uid="+escape(uid_request);
data=data+"&pwd="+escape(pwd_request);
data=data+"&async="+async_request;
data=data+"&back="+back_request;
getViewJsonInfo(url,data) //执行方法(以下两个)
function getViewInfo(url,data){ //字符串处理方法
$.ajax({
data:data,
url:url,
type:'post',
success:function(val){
$("#showRES").html(val);
}
})
}
function getViewJsonInfo(url,data){ //json返回方式的处理方法
$.ajax({
data:data,
url:url,
dataType:'json',
type:'post',
success:function(json){
if(json!=null){
$("#showRES").html(json[1].content.PubTypes[1]);
}else{
alert("nodata")
}
},
error:function(){
alert("err")
}
})
}
})
</script>
<div id="showRES" style="height:1000px; width:1000px; background:#eee">
</div>
说明:以上信息均有注释,祝成功
以上本人亲测和编写,尊重别人的劳动成果,转载请注明出处!否则追究责任,后果自负