我正在开发一个Firefox扩展,我一直在尝试从几个需要获取数据的站点获取响应文本。不知道为什么我在这里得不到任何数据。
下面是测试来自Quantcast.com的XHR请求的代码:
function callback(serverData) {
alert(serverData);
}
function ajaxRequest() {
var AJAX = null;
if (window.XMLHttpRequest) {
AJAX=new XMLHttpRequest();
} else {
AJAX=new ActiveXObject("Microsoft.XMLHTTP");
}
if (AJAX==null) {
alert("Your browser doesn't support AJAX.");
return false
}
AJAX.onreadystatechange = function() {
if (AJAX.readyState==4 || AJAX.status==200) {
callback(AJAX.responseText);
}
}
var url='http://www.quantcast.com/facebook.com';
AJAX.open("GET", url, true);
AJAX.send(null);
}这里是不是少了什么?我知道还有其他扩展正在通过XHR通过Quantcast拉取数据,但当我尝试这样做时,警报上没有显示任何内容。
发布于 2011-01-27 06:49:49
首先,当我打电话给你时,我会做相反的事情。
try {
AJAX = new ActiveXObject("Microsoft.XMLHTTP"); // Try Internet Explorer
}
catch(e) // Failure then it is something else.
{
AJAX = new XMLHttpRequest();
}然后我也会改变你得到答案的方式,因为你想要readyState和status,而不是你说的或。
AJAX.onreadystatechange = function()
{
var xhrdata = "";
if(AJAX.readyState == 4)
{
if(AJAX.status == 200)
xhrdata = AJAX.responseText;
else
xhrdata = AJAX.status;
}
};您可以使用event put a try和catch(e)来发送一条关于服务器错误的消息。您也可以用回调函数替换xhrdata。
https://stackoverflow.com/questions/4484104
复制相似问题