日期:2014-05-17  浏览次数:20739 次

关于JS中跨域的问题
各位大神请留步,这个问题纠结两天了,关于跨域的问题,是从别的域中获取特定字段的值放到当前页面上显示。据说之前功能是好用的,但是现在不好用了。百度,论坛上各种相关问题都看过了但是还是无法解决,跪求高人指点。小弟感激不尽!!!
function openmap_onclick(){
      callid2 = new Date().getTime()+ "" + Math.random();
var url = "${MapURL}UinchinaGpsDispatch?tempId=" + callid2;
url += "&compCde=P1012";     //公司代码
url += "&operateDept=P1012";    //机构代码
var address= document.getElementById("address").value;
url += "&serachAdd="; //“地址检索”功能中检索的地点 
url +=address;
url += "&longitude=${prpLregist.longitude}"; //经度
url += "&latitude=${prpLregist.latitude}"; //维度
url = encodeURI(url);
        window.showModalDialog(url,document,"dialogHeight:720px;dialogWidth:1015px;dialogTop=0,dialogLeft=0,status=yes,toolbar=no,menubar=no,location=no,scrollbars =yes");
         getGpsDispatch();
}
// 调度返回接口函数
function getGpsDispatch(){
var url = "${MapURL}schedu.do?tempId="+escape(callid2)+"&mhd=getSchedu";
 request=getXMLHttpObj();
 alert("第一个输出点");
request.open("GET", url, true);
alert("第二个输出点");
request.onreadystatechange = rollback_dispatch();
alert("第三个输出点");
      request.send(null);//发送请求
}

function getXMLHttpObj(){
var axO=['Msxml2.XMLHTTP.6.0', 'Msxml2.XMLHTTP.4.0','Msxml2.XMLHTTP.3.0', 'Msxml2.XMLHTTP', 'Microsoft.XMLHTTP'], i;
for(i=0;i<axO.length;i++){
try{
return new ActiveXObject(axO[i]);
}catch(e){}
if(typeof(XMLHttpRequest)!='undefined')
return new XMLHttpRequest();
return null;
}
}
// 根据接口返回值,在调度页面添加出险案件对应派工的查勘员
function rollback_dispatch(){
if (request.readyState == 4) {
if (request.status == 200) {
var s=request.responseText;
var disObj = eval("("+s+")");
if(disObj==null||disObj=="") return;
    document.getElementById("scheculenameId").value=disObj.survNme;
    document.getElementById("userCode").value=disObj.survId;
} else{
alert("system error,status is " + request.status);
}
}
}


如上段代码中getGpsDispatch()函数,可以输出第一个输出点,但是第二个就出不来了。说明request.open方法被干了。。。。${MapURL}的值是 http://www.bao16.com:5858/estargps/。用百度和126的域名可以打出第二个输出点。。。求助啊。。。是URL拼写方法出现什么问题了么?~~
xmlhttprequest js 跨域 url

------解决方案--------------------
发送js 脚本方法。 
------解决方案--------------------
http://rubyer.me/blog/324/
可以尝试跨域方法1:使用jquery
------解决方案--------------------
使用jauery可以省去很多麻烦,发送ajax时dateType指定成jsonp就可以了