我正在开发一个 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();
}
你的代码看起来不错。您是否在 config.xml 文件中添加了一个条目以允许访问您的域?您应该会看到类似的条目<access subdomains="false" uri="http://data.mycompany.com/"/>
。要从 WebWorks 应用程序向外部网站发出任何 HTTP 请求,您必须向“白名单”域添加一个条目,如下所示。
如果您使用的是 eclipse 插件,请打开 config.xml 文件,单击底部的“权限”选项卡,然后单击“添加域”。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)