日期:2014-05-18  浏览次数:20692 次

Ajax.Request 无法远程提交问题,急!!!
我在IP为*.*.*.37服务器上部署了一套单点系统,然后用户可以在单点系统上注册业务系统,每个业务系统都注册有可访问的URL以及访问的参数。用户注册的URL和参数在IE里访问都是没问题的,所以可以排除这个问题。页面上用户选择一个注册的业务系统后,系统应该根据该业务系统的URL自动跳转到该业务系统内。但现在遇到一个问题,如果注册的业务系统和单点登陆系统是同一个IP下的,也即*.*.*.37,是没问题的,可以进入业务系统内。但如果是其他的IP,则完全没反应。页面上的源代码如下:

function   Login(originalRequest)   {
if(originalRequest   !=   null)   {
// ...
}
// 在目标系统上进行试探登录
var   url   =   $F( 'loginSystemForm.loginUrl ');
var   pars   =   $F( 'loginSystemForm.loginParameters ');
var   method   =   $F( 'loginSystemForm.submitMethod ');
pars   =   pars.replace(/%USERID%/g,   $F( 'targetUserId ')).replace(/%PASSWORD%/g,   $F( 'targetPassword '));

//问题就出在这里,如果不是和服务器同一个IP,则这条语句就不往下执行了。
var   myAjax   =   new   Ajax.Request(url,   {method:   method,   parameters:   pars,   onComplete:   LoginResponse,   onFailure:   LoginResponseFail});
}

function   LoginResponse(originalRequest)   {
alert( "LoginResponse ");
var   result   =   originalRequest.responseText;
alert( "result   =   "   +   result);
var   flag   =   $F( 'loginSystemForm.loginSuccessFlag ');
if(result.indexOf(flag)   !=   -1)   { // 如果试探登录成功,保存帐号映射关系,并跳转到目标系统
$( 'loginResult ').value   =   '登录成功!正在进入系统... ';
SaveMapping();
}   else   { // 如果试探登录失败,提示登录失败,还在此页面
LoginResponseFail(originalRequest);
}
}

function   LoginResponseFail(originalRequest)   {
alert( "fail ");
$( 'loginResult ').innerHTML   =   ' <B   style= "color:   red; "> 登录失败! </B> ';

var   resultDetail   =   "登录信息不正确、或者系统不可访问。 <BR/> <BR/> "   +   escape(originalRequest.responseText);
$( 'loginResultDetail ').innerHTML   +=   ' <div   style= "border:0px;   position:absolute;   overflow:scroll;   overflow-x:hidden;   width:100%;   height:165px; "   > '   +   resultDetail   +   ' </div> '; // TODO

$( 'loginResult ').style.display   =   'block ';
$( 'toggleResultDetail ').style.display   =   'block ';
}

请各位大侠帮忙看一下,我不懂ajax,这个问题捆饶了我一个多星期了,再搞不定就该收拾东西回家了!!!谢谢了!!!

------解决方案--------------------
路过,帮顶
------解决方案--------------------
看上去好象是ajax跨域的问题,好象没有什么太好的解决办法,我们是做了个servlet来转发数据的,lz可以在google上找找看看还有什么更好的办法没有。