Node.js Express AJAX GET返回404

时间:2013-09-23 16:38:28

标签: jquery node.js express

我有以下内容:

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

为什么不调用回调? :S

1 个答案:

答案 0 :(得分:2)

论证是for a success callback

  

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

jQuery将404Not Found)响应视为error。通常,只有200(确定)或各种3xx响应被视为“成功。”

使用jQuery 1.5及更高版本,从jQuery的Ajax方法返回的jqXHR对象实现Deferred objects,因此您可以使用.fail()添加这样的回调。

$.get(...).fail(function (xhr, textStatus, errorThrown) {
    console.log('Ajax error', textStatus, errorThrown);
});

如果您想知道为什么它会获得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