【发布时间】:2009-04-06 12:35:20
【问题描述】:
我需要发出一个 ajax 请求,IE 工作正常,Firefox URI DENIED。
我google了一下,发现唯一的办法就是使用JSON来消除和限制。
有人有例子吗?
谢谢
【问题讨论】:
-
您的 URI 与出现代码的页面是否指向同一服务器?
标签: javascript ajax json
我需要发出一个 ajax 请求,IE 工作正常,Firefox URI DENIED。
我google了一下,发现唯一的办法就是使用JSON来消除和限制。
有人有例子吗?
谢谢
【问题讨论】:
标签: javascript ajax json
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;
});
});
【讨论】:
或者,您可以让您的 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 的网站是不可接受的。它在很多方面破坏了网络的可访问性和实用性。
【讨论】:
在深入之前,请尝试在请求中使用绝对 url。 我所知道的 IE 和 FIrefox 之间唯一适用的区别是 IE 在 http 流量中将相对 url 转换为绝对。
【讨论】:
您始终可以使用服务器端代理。
【讨论】:
如果这是一个跨站点问题(我认为不是),请尝试为您的站点(例如 flickrapi.acme.com)设置一个子域,它是 api.flickr.com 的 CNAME。
【讨论】: