1

我有一个简单的 ajax 请求data-type: 'script'

如果响应的状态码为 200,则返回的 javascript 会正常执行。如果是 500 或 403 之类的错误代码,则不会执行。

我已经重读了 3 次文档:

“脚本”:将响应评估为 JavaScript,并将其作为纯文本返回。...

这并没有说明它以成功或任何其他条件为条件。

由于我的服务器以“text/javascript”的响应类型进行响应,我会假设 jQuery 会处理该内容类型(即评估它)即使它以“500”状态代码响应(即“嘿,我不能不要做你让我做的事”)

这是 jQuery 的问题吗?或者这是预期的行为并且文档不完整?

4

1 回答 1

1

从 1.5 版开始,ajax 调用返回一个延迟对象。

所以你可以使用

$.ajax({/*options*/})
  .done(function(data, status, jqxhr){ alert("$.ajax completed!"); })
  .fail(function(jqxhr, settings, exception){ alert("$.ajax failed!"); });

请注意.done,当请求成功时,将在调用方法之前评估实际脚本

于 2012-05-25T18:15:07.993 回答