1

我正在使用 jQuery ajax 方法调用 SOAP Web 服务。如果没有问题,它可以正常工作,但现在我正在做一些测试,例如提供错误的用户名/密码并且我收到的错误不是预期的 401:未经授权。调用一直等到超时,然后返回超时错误...

我在 SOAPUI 上尝试了使用错误凭据的 Web 服务,并收到未经授权的即时错误消息。我的javascript调用如下:

$.ajax({
    url : soapURL,
    type : 'POST',
    username : settings.get('user'),
    password : settings.get('pwd'),
    timeout : '30000',
    dataType : 'xml',
    data : soapReq,
    success : soapSuccess,
    error : soapError,
    contentType : 'text/xml; charset=\"utf-8\"',
    beforeSend : function() {
        $('#loader').show();
    },
    complete : function() {
        $('#loader').hide();
    }
}); 

这里是错误回调函数:

function soapError(jqXHR, textStatus, errorThrown) {
alert('Ajax error: ' + textStatus);
}
4

1 回答 1

1

我对这个问题做了更多的研究。有很多人在使用基本身份验证 + phonegap 进行跨域调用的 AJAX 调用时遇到问题,我没有找到完美的解决方案来解决这个问题。

但是多亏了这个google groups post,至少我发现通过对任何服务的同步调用,我可以验证用户和密码并在此之后继续使用异步。

另一种可能的解决方案是在 401 错误后更改服务器响应,但我不允许修改它。

于 2012-07-18T13:06:32.973 回答