Jquery Node.js Express AJAX GET返回404
我有以下资料:Jquery Node.js Express AJAX GET返回404,jquery,node.js,express,Jquery,Node.js,Express,我有以下资料: $.get('path/to/file.js', function(data) { //this callback function never runs! }); 为什么不调用回调?:S参数是: 获取(url[,数据][,成功(数据,文本状态,jqXHR)][,数据类型]) jQuery将404()响应视为错误。通常,只有200(正常)或各种3xx响应被视为“成功” 对于jQuery 1.5及更高版本,从jQuery的Ajax方法返回的jqXHR对象将实现,因此您可以
$.get('path/to/file.js', function(data) {
//this callback function never runs!
});
为什么不调用回调?:S参数是:
获取(url[,数据][,成功(数据,文本状态,jqXHR)][,数据类型])
jQuery将404
()响应视为错误。通常,只有200
(正常)或各种3xx
响应被视为“成功”
对于jQuery 1.5及更高版本,从jQuery的Ajax方法返回的jqXHR对象将实现,因此您可以使用.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
检查控制台,请求是否通过?Node对此有何评论?是的,发布console.log(req.url)的输出;什么意思?好的。当我在浏览器中手动访问它时,它会给我200 OK。由于某种原因,当我使用AJAX时,我得到了404。不过,我在express framework中使用node.js。实际上,它返回200 OK,但有一个语法错误。因此它认为JSON由于某种原因是无效的。但是,我获取了JSON并访问了jsonlint.com并验证了JSON,jsonlint返回的是有效的。@PetterThowsen是来自静态文件还是路由的JSON?如果它来自一个文件,它是用什么编码保存的?UTF-8可能是最好的。但是,它有一个?如果是的话,看看你是否可以不用它来保存。或者,如果它来自路由,那么响应是否包含JSON以外的任何其他内容?JSON是如何生成的?是否指定了内容类型
?您是否在同一个框/域上提出请求?否则,您将不得不使用JSONP,因为您无法使用jQuery跨域获取JS。