Ajax成功回调未在200网络响应上被调用

时间:2018-11-24 10:46:13

标签: javascript jquery html

我有一个简单的HTML页面,可加载jquery 3.3.1和外部脚本文件script.js。我正在运行一个服务于静态页面的简单节点http-server。 data.json也位于HTML文件的同一文件夹中。但是当下面的ajax调用完成时,我可以看到在网络调用中请求成功,但是,从未调用过ajax调用的成功回调。为什么?enter image description here

$( document ).ready(function() { 

    // Get data from json file        
   $.ajax({
    url: 'data.json',
    dataType: 'json',
    success: function (data) {
        console.log(data);        
    },
   error: function (xhr) { 
    alert('Error: ' + xhr.statusText); 
   }
});
    
    
    
    
});
    <html>
<head>
    <title>BW Chart</title>
    <script src="jquery-3.3.1.min.js"></script>
    <script src="script.js"></script>
</head>

<body>
    
</body>
</html>

我可以看到它的调用错误函数,但是为什么即使在状态200上它也可以调用错误函数

enter image description here

data.json

[{name:"Object 1",
  hot:12,
  warm:5,
  cold:56,
  pHot:85,
  pWarm:52,
  pCold:25
 },{name:"Object 2",
  hot:14,
  warm:55,
  cold:23,
  pHot:89,
  pWarm:14,
  pCold:56
 },{name:"Object 3",
  hot:56,
  warm:45,
  cold:26,
  pHot:85,
  pWarm:41,
  pCold:36
 },{name:"Object 4",
  hot:15,
  warm:56,
  cold:47,
  pHot:25,
  pWarm:28,
  pCold:19
 },{name:"Object 5",
  hot:18,
  warm:52,
  cold:12,
  pHot:46,
  pWarm:52,
  pCold:73
 }]

1 个答案:

答案 0 :(得分:1)

您的script.js看起来不错,那里没有错误。但是,如果浏览器无法解析JSON,则您的jQuery Ajax调用的success方法将无法执行。确保您的data.json是有效的JSON并且不包含任何语法错误...
例如,在JSON文件中,所有属性名称都应加双引号。