我有以下幾點:Node.js的快遞AJAX GET返回404
$.get('path/to/file.js', function(data) {
//this callback function never runs!
});
爲什麼沒有回調被調用? :S
我有以下幾點:Node.js的快遞AJAX GET返回404
$.get('path/to/file.js', function(data) {
//this callback function never runs!
});
爲什麼沒有回調被調用? :S
jQuery.get(URL [,數據] [,成功(數據,textStatus,jqXHR)] [,的dataType])
並且404
(Not Found)響應被jQuery視爲error
。通常,只有200
(OK)或各種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
好的。那麼當我在瀏覽器中手動訪問它時,它會給我200 OK。出於某種原因,當我使用AJAX時,我得到了404。儘管我使用express框架來使用node.js。 –
實際上,它返回200 OK,但是有一個parseError。所以它認爲JSON由於某種原因無效。但是,我拿走了JSON並前往jsonlint.com並驗證了json,jsonlint返回了Valid。 –
@PetterThowsen是來自靜態文件還是路由的JSON?如果它來自文件,它保存了什麼編碼? UTF-8可能是最好的。但是,它是否有[BOM](https://en.wikipedia.org/wiki/Byte_order_mark)?如果是這樣,看看你是否可以保存沒有它。或者,如果來自路由,響應是否包含除JSON之外的其他內容? JSON是如何產生的?是否指定了「Content-Type」? –
檢查您的控制檯,請求是否通過?節點說什麼? – tymeJV
是發佈console.log(req.url)的輸出; – Gaurav
和什麼:S是什麼意思? – Gaurav