在静态json文件上的节点js上使用getJSON时,不支持获取协议

时间:2013-09-21 18:26:08

标签: javascript jquery ajax json node.js

在我的节点js文件中,我有这段代码:

var jqxhr = $.getJSON( "favs.json", function() {
    console.log( "success" );
})
.done(function() {
    console.log( "second success" );
})
.fail(function( jqxhr, textStatus, error ) {
    var err = textStatus + ", " + error;
    console.log( "Request Failed: " + err );
})
.always(function() {
    console.log( "complete" );
});

在服务器中,在与上述js文件相同的目录中有一个名为favs.json的文件。但是,当我访问该页面时,我收到错误:

Request Failed: error, Protocol not supported.

有谁知道什么是错的?

感谢。

1 个答案:

答案 0 :(得分:1)

  

在服务器中,在与上述js文件相同的目录中有一个名为favs.json的文件。

如果文件位于服务器上,为什么不用fs.readFile()来阅读它?

var fs = require('fs');
var fileContents;
fs.readFile('./favs.json', function (err, data) {
    if (err) throw err;
    fileContents = data;
    // ...
});

如果您真的想使用XMLHttpRequest

获取该文件的内容
  1. 确保可以通过应用程序中的HTTP(S)服务器访问它。
  2. 输入您要提取的文件的完整网址(例如http://localhost/favs.json。)
  3. 显然$.getJSON在未指定时使用意外(可能为空)值作为协议。