我使用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); } } } }
不知道你的后台是用什么写的,你试着检查一下这个url是不是被当成静态文件处理了。
我这个没有后台,只做了一个静态网站,基本都是用HTML.js.jquery,写的
@小短腿奔跑吧: 更改一下你的IIS配置:
1. MIME Type 新加一项:
扩展名 : .json
MIME Type : application/json
2. Handler Mappings 新加一项 Script Map:
Request path: *.json
@行乎当行: 我想再请教你一个问题,只把静态网站发布,已经有空间和域名,是不是直接再IIS上就可以,还是Flashfxp?我这个网站是别人昨天给放上去的,我也不会弄。
我刚刚弄了一下IIS的配置,已经安装了,但觉得好像有点不懂,我用的纯前端代码写的,这个应用开发程序功能的多选框,我应该选哪几个啊?
@小短腿奔跑吧: 这几个选项是开发动态网站用的,你可以不用管。
静态网站是可以直接用IIS,*.html,*.js 这些都会被当成静态内容直接发给浏览器。*.json 这个可能要单独配置一下,要不IIS不知道该怎么处理这个文件。
@行乎当行: 你找服务端吧。
@行乎当行: 这要点哪个呀?那我现在已经有来网址了,怎么才直接打开的时候IP换成网址呢?
@小短腿奔跑吧: 先选中站点,右边有个绑定,添加你的网址就行了。
@行乎当行: 那json怎么单独配置?
我找到你说的IIS配置了,我已经添加了,你看看对不对?我刷新网站json还是没出来
我告诉你一个好消息,我已经弄出来啦,哈哈,好开心呀,
@小短腿奔跑吧: 不好意思,没及时回复。 不过还好你已经弄出来了 哈哈
@行乎当行: 这得多亏了你呀,我才能这么快的弄出来,嘿嘿,好开心呀,谢谢你
@行乎当行: 你好,在吗?我想请教你一个问题,我已经把源码通过远程连接的方式放进去了,直接通过域名也可以打开,但不知道为什么我很多数据都是通过ajax调取的json数据,其他的都能显示,只有json数据不显示,该怎么办呀?我之前用你说的用IIS用本地IP做的是可以出来,但我们是从阿里云买的服务器,用的是公网IP,这个该怎么弄
@小短腿奔跑吧: 刚试了一下你的网站,可以访问呀
@行乎当行: 你太会掐着点来了,我刚刚把它弄好了,嘿嘿
请直接看F12。第一种是jq方式,用法没问题,检查data是不是能被正确eval。
第二种是原生方式,用法来看也没啥问题。
另,注意跨域问题,如果直接打开html(不部署),默认是没有ajax权限的。
http://www.ribbonfairs.com/groupExhibition.html
这是我做的网站,凡是用ajax写的数据都没有显示,你帮我看一下是怎么回事?右键可以看源码
@小短腿奔跑吧: 很明显的错误,请求地址不对:http://www.ribbonfairs.com/js/groupExhibition.json 根本就是404。
@幻天芒:
这个文件确实是在js里放着啊
@小短腿奔跑吧: 你直接访问看看了。这个有可能也和部署有关的。具体你自己查了,浏览器又不会骗你,404代表响应是404,不代表文件一定不存在。
@幻天芒: http://127.0.0.1:8020/yb/groupExhibition.html这种网址直接打开是网站都可以看到的,这是为啥?
@小短腿奔跑吧: 看你怎么部署的,看json格式有没有被拦截。
@幻天芒: 那要是拦截了怎么办啊?我没弄过这个,你帮帮我吧