-3

我有以下内容:

$.get('path/to/file.js', function(data) {
    //this callback function never runs!
});

为什么不调用回调?:S

4

1 回答 1

2

参数用于success回调

jQuery.get( url [, data ] [, success (data, textStatus, jqXHR) ] [, dataType ] )

并且404未找到error)响应被jQuery视为。通常,只有200(OK)或各种3xx响应被认为是“成功”。

在 jQuery 1.5 及更高版本中,从 jQuery 的 Ajax 方法返回的 jqXHR 对象实现了Deferredobjects,因此您可以使用.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
于 2013-09-23T16:47:20.010 回答