Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/42.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery Node.js Express AJAX GET返回404_Jquery_Node.js_Express - Fatal编程技术网

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。