我正在开发一个Blackberry webworks应用程序,我遇到了一个我正在向服务器发出的AJAX请求。我正在学习HTML / Javascript / AJAX,所以原谅任何初学者的错误。基本上,对服务器进行格式化的HTTP请求,返回我在应用程序中使用的JSON对象。我使用AJAX来提出没有任何框架的请求。 大多数请求不需要进行身份验证,而且这些请求返回正常。但是,要访问服务器的目录部分,用户名和密码将被编码并作为XMLHTTPRequest的标头发送。当我尝试添加标题时,请求被发送,但我从来没有得到任何回报。 readyState属性设置为1,但永远不会超出该范围。我知道服务器工作正常,因为我为iPhone做了同样的事情,并且它有效。
以下是相关代码:
function grabFromServer(httpRequest){
httpConnection = new XMLHttpRequest();
var me = this;
httpConnection.onreadystatechange=function(){
alert(httpConnection.readyState);
if(httpConnection.readyState==4){
me.processResponseText(httpConnection.responseText);
}
};
httpConnection.open("GET", httpRequest,true);
if(this.request == "company" || this.request == "property" || this.request == "individual"){
var authorized = this.checkCredentials();
if(!authorized){
//ask for username pword
}
//here, add credentials
httpConnection.setRequestHeader("Authorization", "Basic : ODI5ZGV2bDokY19kdXN0Ym93bA==");
}
httpConnection.send();
}
答案 0 :(得分:1)
您的代码似乎很好。您是否在config.xml文件中添加了一个条目以允许访问您的域?您应该看到<access subdomains="false" uri="http://data.mycompany.com/"/>
之类的条目。要从WebWorks应用程序向外部网站发出任何HTTPRequests,您必须向“白名单”域添加一个条目,如下所示。
如果您正在使用eclipse插件,请打开config.xml文件,单击底部的“权限”选项卡,然后单击“添加域”。