在FIREFOX上拒绝AJAX请求,但在IE上没有

时间:2009-04-06 12:35:20

标签: javascript ajax json

我需要发一个ajax请求,IE Works OK,Firefox URI DENIED。

我用Google搜索,我发现唯一的方法是使用JSON来消除和限制。

是否有人有任何例子?

由于

5 个答案:

答案 0 :(得分:1)

使用jQuery,它可能如下所示:

$.getJSON("http://api.flickr.com/services/feeds/photos_public.gne?" +
          "tags=cat&tagmode=any&format=json&jsoncallback=?",
    function(data){
      $.each(data.items, function(i,item){
        $("<img/>").attr("src", item.media.m).appendTo("#images");
        if ( i == 3 ) return false;
      });
    });

答案 1 :(得分:0)

或者,您可以让您的XMLHttpRequest将您的用户代理指定为IE(浏览器嗅探是愚蠢的):

var req = new XMLHttpRequest();
req.setRequestHeader('User-Agent','MSIE 7.0');
req.open("GET", sURL, true);
req.onreadystatechange=function() {
    if (req.readyState==4) {
        alert(req.responseText);
    }
}
req.send(null);

或者更好的是,向网站管理员发送一封措辞强烈的电子邮件,告知他们不接受来自非IE浏览器的请求。在这个时代,建立一个只有IE的网站是不可接受的。它破坏了可访问性和安全性。网络在很多方面的用处。

答案 2 :(得分:0)

在进入太深之前,请尝试在请求中使用绝对网址。 我在IE和FIrefox之间知道的唯一不同之处就是IE在http流量中将相对URL转换为绝对值。

答案 3 :(得分:0)

您始终可以使用服务器端代理。

答案 4 :(得分:0)

如果这是一个跨网站问题(我认为不是这样),请尝试为您的网站设置一个子域名(例如,flickrapi.acme.com),该子域名是api.flickr.com的CNAME。< / p>