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上找找看看还有什么更好的办法没有。