为什么页面加载不出信息

我通过jquery读取xml文件内容,生成表格。但是实际上页面更不不显示任何东西。麻烦大家帮我看看哪错了

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <script src="jquery-3.1.1.min.js"></script>
  <title>Document</title>
</head>
<body>
  <script type="text/javascript">
  $(document).ready(function(){
        $.ajax({
            url:"1.xml",
            type:"GET",
            dataType:"xml",
            success:function(xml){
            var htmlData="<table border='1'>";
            $(xml).find('student').each(function(){
              var $student = $(this);
              var name = $student.find('name').text();
              var num = $student.find('num').text();
              var sex = $student.find('sex').text();
              var age = $student.find('age').text();
              var dept = $student.find('dept').text();
              htmlData += '<tr>'+'<td>'+name+'</td>'+'<td>'+num+'</td>'+'<td>'+sex+'</td>'+'<td>'+age+'</td>'+'<td>'+dept+'</td>'+'</tr>';
            });
            htmlData+="</table>";
            $("body").append(htmlData);
          },
        });
      });
  </script>
</body>
</html>
<?xml version="1.0" encoding="utf-8" ?>
<message>
<student>
<name>NAME</name>
<num>NUM</num>
<sex>SEX</sex>
<age>AGE</age>
<dept>DEPARTMENT</dept>
</student>
<student>
<name>jack</name>
<num>2012001</num>
<sex>man</sex>
<age>20</age>
<dept>English</dept>
</student>
<student>
<name>John</name>
<num>2012002</num>
<sex>man</sex>
<age>21</age>
<dept>Chinese</dept>
</student>
<student>
<name>Max</name>
<num>2012003</num>
<sex>woman</sex>
<age>19</age>
<dept>Cumputer</dept>
</student>
<student>
<name>Kitty</name>
<num>2012004</num>
<sex>woman</sex>
<age>20</age>
<dept>Math</dept>
</student>
</message>

我是在本地打开html文件的,xml文件没有被加载。我怎样才能成功在本地进行调试
?我也不太清楚怎么去http/https域下加载这些。

阅读 4k
4 个回答

1.先用console.log()开始对js进行测试看看是否进入请求函数。
2.用谷歌浏览器的NetWork功能看看有没有请求和返回的文件是什么。

我怀疑你是没有请求到

Chrome不支持这种本地(file协议)的Ajax,会在console显示:

clipboard.png

解决起来也简单,我说俩:

  1. 换FireFox。FireFox支持file协议的Ajax,有几个API做的比Chrome要好,偶尔调这种小东西还是挺方便的(其实是我喜欢中文的开发者工具。。)

  2. 装一个叫“Web Server for Chrome”的Chrome应用,装好以后在开始菜单的“Chrome应用”里,打开,点击“CHOOSE FOLDER”,选择你页面所在的文件夹,然后把下边蓝色小开关拨开,用下边给的网址+页面文件地址访问就ok了,轻巧灵活方便好用。

控制台的报错信息很明显吧,你进行ajax请求,file://是不被允许的。

你可以安装个phpstudy,把你的文件放到www文件夹里,访问http://localhost 就能正常请求了

ajax访问本地文件在浏览器是不行的, 如果楼主熟悉node的话,可以开一个本地服务。

如果不熟悉node,可以用一个插件,叫 browser-sync , http://www.browsersync.cn/

按教程也能开一个本地服务,启动之后会生成一个地址,按照你的目录进行访问就可以了。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题