我有以下内容:
$.get('path/to/file.js', function(data) {
//this callback function never runs!
});
为什么不调用回调?:S
参数用于success
回调:
jQuery.get( url [, data ] [, success (data, textStatus, jqXHR) ] [, dataType ] )
并且404
(未找到error
)响应被jQuery视为。通常,只有200
(OK)或各种3xx
响应被认为是“成功”。
在 jQuery 1.5 及更高版本中,从 jQuery 的 Ajax 方法返回的 jqXHR 对象实现了Deferred
objects,因此您可以使用.fail()
添加这样的回调。
$.get(...).fail(function (xhr, textStatus, errorThrown) {
console.log('Ajax error', textStatus, errorThrown);
});
如果您想知道为什么它会得到 a 404
,那取决于使用的实际路径。但是,示例路径将相对于当前页面的地址。
http://yourdomain.tld/foo/bar/page + path/to/file.js =
http://yourdomain.tld/foo/bar/path/to/file.js
您可以尝试通过从主机之后开始指定相对于根的路径/
,这将使用它作为一个共同的起点:
$.get('/path/to/file.js', ...);
http://yourdomain.tld/foo/bar/page + /path/to/file.js =
http://yourdomain.tld/path/to/file.js