Ajax请求失败,但状态码仍为200 "OK"。

20 浏览
0 Comments

Ajax请求失败,但状态码仍为200 "OK"。

我不确定为什么会发生这种情况,但我有一个简单的Ajax代码:

$.ajax({ url: "/javascript/testing.js"})
    .done(function(data){ console.log(data) })
    .fail(function(jqXHR, textStatus, errorThrown) {
         console.log(jqXHR);
    });

当状态码为"OK"时,.fail()被执行。同时,responceText中也存在实际的合法数据。为什么会发生这种情况呢?

enter image description here

0
0 Comments

问题出现的原因是dataType属性的设置不正确。如果想要解析javascript文件,则dataType应该设置为“script”,如果只是获取文件内容,则dataType应该设置为“text”。

解决方法是根据需求正确设置dataType属性。如果想要解析javascript文件,则将dataType设置为“script”;如果只是获取文件内容,则将dataType设置为“text”。

示例代码如下:

// 解析javascript文件
$.ajax({ url: "/javascript/testing.js", dataType: "script" })
  .done(function(data){ console.log(data) })
  .fail(function(jqXHR, textStatus, errorThrown) {
    console.log(jqXHR);
  });
// 获取文件内容
$.ajax({ url: "/javascript/testing.js", dataType: "text" })

0