首页 新闻 会员 周边 捐助

ajax的兼容性

0
悬赏园豆:10 [已解决问题] 解决于 2017-03-31 13:58

我使用HBuilder做了一个静态网站,因为要传的数据多,所以使用了ajax调取json,直接用软件打开浏览器就可以看到ajax的数据,可是使用第一种方法在本地直接打开的话,都看不到json数据,然后我又换成第二种方法,本地打开只有火狐可以看到,其他浏览器都看不到,昨天我把源码放在了服务器上,发现不论是第一种还是第二种发放都不显示json,各位大神帮帮忙,这个网站就差这么一点了

第一种

$.ajax({
                type:"get",
                url:"js/groupExhibition.json",
                async:true,
                success:function(data){
                    var arr = eval(data);
                    for(var i=0;i<arr.length;i++)
                    {
                        var a = "<div class='yb_contDiv'>"+arr[i].name+"</div>";
                        
                        $("#itemContainer").append(a);
                    }
            
});

第二种

ajax("js/groupExhibition.json",function(data){
                    var arr =eval(data);
                 for(var i=0;i<arr.length;i++){         
            var a = "<div class='yb_contDiv'>"+arr[i].name+"</div>";
            $("#itemContainer").append(a);
          }
         },function(){ alert("服务器繁忙,请重试"); })
function ajax(url, fnSucc, faild) {
    var ajax = false;
    if (window.XMLHttpRequest)
    {// code for IE7+, Firefox, Chrome, Opera, Safari
      ajax=new XMLHttpRequest();
    }
    else
    {// code for IE6, IE5
      ajax=new ActiveXObject("Microsoft.XMLHTTP");
    }
    
    ajax.open("get", url, true);
    ajax.send();
    ajax.onreadystatechange = function() {
        if(ajax.readyState == 4) {
            if(ajax.status == 200) {
                fnSucc(ajax.responseText);
            } else {
                faild(ajax.status);
            }
        }
    }
}
小短腿奔跑吧的主页 小短腿奔跑吧 | 初学一级 | 园豆:136
提问于:2017-03-31 09:17
< >
分享
最佳答案
0

不知道你的后台是用什么写的,你试着检查一下这个url是不是被当成静态文件处理了。

收获园豆:10
行乎当行 | 菜鸟二级 |园豆:347 | 2017-03-31 10:24

我这个没有后台,只做了一个静态网站,基本都是用HTML.js.jquery,写的

小短腿奔跑吧 | 园豆:136 (初学一级) | 2017-03-31 10:25

@小短腿奔跑吧: 更改一下你的IIS配置:

1. MIME Type 新加一项:

  扩展名 : .json

  MIME Type : application/json

2. Handler Mappings 新加一项 Script Map:  

  Request path: *.json

  •   Executable: C:\WINDOWS\system32\inetsrv\asp.dll
  •  

  

行乎当行 | 园豆:347 (菜鸟二级) | 2017-03-31 10:39

@行乎当行: 我想再请教你一个问题,只把静态网站发布,已经有空间和域名,是不是直接再IIS上就可以,还是Flashfxp?我这个网站是别人昨天给放上去的,我也不会弄。

我刚刚弄了一下IIS的配置,已经安装了,但觉得好像有点不懂,我用的纯前端代码写的,这个应用开发程序功能的多选框,我应该选哪几个啊?

小短腿奔跑吧 | 园豆:136 (初学一级) | 2017-03-31 10:55

@小短腿奔跑吧: 这几个选项是开发动态网站用的,你可以不用管。

静态网站是可以直接用IIS,*.html,*.js 这些都会被当成静态内容直接发给浏览器。*.json 这个可能要单独配置一下,要不IIS不知道该怎么处理这个文件。

行乎当行 | 园豆:347 (菜鸟二级) | 2017-03-31 11:04

@行乎当行: 你找服务端吧。

幻天芒 | 园豆:37207 (高人七级) | 2017-03-31 11:06

@行乎当行: 这要点哪个呀?那我现在已经有来网址了,怎么才直接打开的时候IP换成网址呢?

小短腿奔跑吧 | 园豆:136 (初学一级) | 2017-03-31 11:09

@小短腿奔跑吧: 先选中站点,右边有个绑定,添加你的网址就行了。

行乎当行 | 园豆:347 (菜鸟二级) | 2017-03-31 11:23

@行乎当行: 那json怎么单独配置?

小短腿奔跑吧 | 园豆:136 (初学一级) | 2017-03-31 11:32

我找到你说的IIS配置了,我已经添加了,你看看对不对?我刷新网站json还是没出来

小短腿奔跑吧 | 园豆:136 (初学一级) | 2017-03-31 13:19

我告诉你一个好消息,我已经弄出来啦,哈哈,好开心呀,

小短腿奔跑吧 | 园豆:136 (初学一级) | 2017-03-31 13:57

@小短腿奔跑吧: 不好意思,没及时回复。 不过还好你已经弄出来了 哈哈

行乎当行 | 园豆:347 (菜鸟二级) | 2017-03-31 14:19

@行乎当行: 这得多亏了你呀,我才能这么快的弄出来,嘿嘿,好开心呀,谢谢你

小短腿奔跑吧 | 园豆:136 (初学一级) | 2017-03-31 14:21

@行乎当行: 你好,在吗?我想请教你一个问题,我已经把源码通过远程连接的方式放进去了,直接通过域名也可以打开,但不知道为什么我很多数据都是通过ajax调取的json数据,其他的都能显示,只有json数据不显示,该怎么办呀?我之前用你说的用IIS用本地IP做的是可以出来,但我们是从阿里云买的服务器,用的是公网IP,这个该怎么弄

小短腿奔跑吧 | 园豆:136 (初学一级) | 2017-04-05 16:24

@小短腿奔跑吧: 刚试了一下你的网站,可以访问呀

行乎当行 | 园豆:347 (菜鸟二级) | 2017-04-05 17:17

@行乎当行: 你太会掐着点来了,我刚刚把它弄好了,嘿嘿

小短腿奔跑吧 | 园豆:136 (初学一级) | 2017-04-05 17:20
其他回答(1)
0

请直接看F12。第一种是jq方式,用法没问题,检查data是不是能被正确eval。

第二种是原生方式,用法来看也没啥问题。

 

另,注意跨域问题,如果直接打开html(不部署),默认是没有ajax权限的。

幻天芒 | 园豆:37207 (高人七级) | 2017-03-31 09:42

http://www.ribbonfairs.com/groupExhibition.html

这是我做的网站,凡是用ajax写的数据都没有显示,你帮我看一下是怎么回事?右键可以看源码

支持(0) 反对(0) 小短腿奔跑吧 | 园豆:136 (初学一级) | 2017-03-31 09:46

@小短腿奔跑吧: 很明显的错误,请求地址不对:http://www.ribbonfairs.com/js/groupExhibition.json 根本就是404。

支持(0) 反对(0) 幻天芒 | 园豆:37207 (高人七级) | 2017-03-31 09:49

@幻天芒: 

这个文件确实是在js里放着啊

支持(0) 反对(0) 小短腿奔跑吧 | 园豆:136 (初学一级) | 2017-03-31 10:04

@小短腿奔跑吧: 你直接访问看看了。这个有可能也和部署有关的。具体你自己查了,浏览器又不会骗你,404代表响应是404,不代表文件一定不存在。

支持(0) 反对(0) 幻天芒 | 园豆:37207 (高人七级) | 2017-03-31 10:06

@幻天芒: http://127.0.0.1:8020/yb/groupExhibition.html这种网址直接打开是网站都可以看到的,这是为啥?

支持(0) 反对(0) 小短腿奔跑吧 | 园豆:136 (初学一级) | 2017-03-31 10:06

@小短腿奔跑吧: 看你怎么部署的,看json格式有没有被拦截。

支持(0) 反对(0) 幻天芒 | 园豆:37207 (高人七级) | 2017-03-31 10:08

@幻天芒: 那要是拦截了怎么办啊?我没弄过这个,你帮帮我吧

支持(0) 反对(0) 小短腿奔跑吧 | 园豆:136 (初学一级) | 2017-03-31 10:10
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册