适用于Firefox的jQuery getJSON响应null,适用于IE

wil*_*rry 2 ajax firefox jquery internet-explorer json

$.getJSON(service + "/GetJobTags", 
    { tag: "a" }, 
    function(json) {
        $.each(json, function(i,val) { 
            alert(val.Title); 
        }); 
     });
Run Code Online (Sandbox Code Playgroud)

它叫:

http://127.0.0.1:20087/ClientService.svc/GetJobTags?tag=a

这可能是值得注意的,该服务在客户端应用程序的不同端口上运行,该端口位于:

http://127.0.0.1:32017/index.htm

Firefox说HTTP 200 OK,但响应数据为空(在Firebug中以红色突出显示).在IE中它工作正常,服务器返回json.

这是权限问题吗?我需要使用JSONP吗?

Pek*_*ica 6

使用不同的端口肯定是针对Firefox中的同源策略:来源此处

也许document.domain有帮助,我不确定:我找不到任何确认它可以帮助跨越端口的东西.

更新:对此SO问题的反馈表明,JSONP或使用代理服务器端脚本确实是唯一的方法.