XHR 响应:连接已关闭

xhr response: connection closed

本文关键字:连接 响应 XHR      更新时间:2023-09-26

我写了一个Flickr搜索引擎,它根据选定的下拉框调用公共提要或FlickrApi。返回的 JSONP 函数调用示例:

a) jsonFlickrApi({"photos":{"page":1, "pages":201, "perpage":100, "total":"20042", "photo":[{"id":"5101738723"...

b) jsonFlickrFeed({ "title": "Recent Uploads tagged red","link": "http://www.flickr.com/photos/tags/red/","description": "", ....

奇怪的是,在我的本地安装(xampp)中,两者都工作正常,并且我得到了图像,但是当我在上述域上托管完全相同的代码时,jsonFlickrApi不起作用。我注意到(通过查看Firebug)是,对于响应标头显示jsonFlickrApi Connection close

此外,当我向jsonFlickrApi提交请求时,Firebug 不会向我显示Response选项卡

这是代码:

function makeCall(uri)
{
    xmlhttp = new XMLHttpRequest();
    xmlhttp.onreadystatechange = callback;
    xmlhttp.open("GET", "jsonget.php?url="+uri, true);
    xmlhttp.send();
}
function jsonFlickrApi(response)
{ 
  var data= response.photos.photo ;
  var output = "";
  output += "<img src=http://farm" + data[4].farm + ".static.flickr.com/" + data[1].server + "/" + data[4].id + "_" + data[4].secret + ".jpg>";
  document.getElementById("cell-0").innerHTML = output ;
}
//Public Feed
function jsonFlickrFeed(response)
{
  var data= response.items[0].media.m ;
  alert(data);
  var output = "";
  output += "<img src=" + data+ ">";
  document.getElementById("cell-0").innerHTML = output ;
}
function callback()
{
    //console.log("Ready State: " + xmlhttp.readyState + "'nStatus" + xmlhttp.status);
    if(xmlhttp.readyState==4 && xmlhttp.status==200)
    {
                var jsonResponse = xmlhttp.responseText; 
        jsonResponse = eval(jsonResponse);
    }
}

调用示例:

一)

http://flickr.com/services/rest/?method=flickr.photos.search&api_key=75564008a468bf8a284dc94bbd176dd8&tags=red&content_type=1&is_getty=true&text=red&format=json&timestamp=1339189838017

b)

http://api.flickr.com/services/feeds/photos_public.gne?tags=red&format=json&timestamp=1339190039407

问:为什么我的连接会关闭? 为什么它在本地主机上工作而不是在实际域上工作?

查看 HTTP 响应标头

http://flickr.com/services/rest/?method=flickr.photos.search&api_key=75564008a468bf8a284dc94bbd176dd8&tags=red&content_type=1&is_getty=true&text=red&format=json&timestamp=1339189838017

我得到一个带位置的 302

http://www.flickr.com/services/rest/?method=flickr.photos.search&api_key=75564008a468bf8a284dc94bbd176dd8&tags=red&content_type=1&is_getty=true&text=red&format=json&timestamp=1339189838017

所以,闪烁想告诉你的是"用 www.flicker.com 而不是 flicker.com!有了这个网址,我得到了内容。