2014-09-21 240 views
0

当试图加载在PhantomJS使用$.getJSON本地JSON文件,我得到错误信息:PhantomJS不允许加载本地资源

不允许加载本地资源:文件://测试。 JSON。

describe('AJAX', function() { 
    it('$.getJSON', function (done) { 
     $.getJSON('file://test.json', function (data) { 
      assert.strictEqual(data.string_property, 'string'); 
      done(); 
     }); 
    }); 
}); 

我已经使用命令行参数试图--web-security=false--local-to-remote-url-access=true,但我一直得到同样的错误消息。

+0

PHP脚本是否可以自己运行。你有没有做过测试以确保它不是Web服务器的问题?也有你监测的Apache错误日志文件,看看是否有任何安全问题 – Tasos 2014-09-21 20:10:30

+0

我根本不使用PHP,并没有涉及Apache服务器! – doberkofler 2014-09-21 20:17:22

+0

我不知道我以为它是PHP :()。我想我知道这个问题。它的控制允许来源:*这就是阻止你。试试谷歌浏览器的扩展名并给它一个测试 - https://chrome.google.com/webstore/detail/allow-control-allow-origi/nlfbmbojpeacfghkpbjhddihlkkiljbi?hl=en – Tasos 2014-09-21 21:04:26

回答

1

如果要从文件系统读取文件,则应使用fs模块。例如像这样:

var fs = require("fs"); 
var data = fs.read("test.json"); 
// do something with data 

还有就是你可以用它来让PhantomJS从远程位置访问本地文件没有命令行选项。 --local-to-remote-url-access=true做别的事情。如果您位于about:空白页面,则允许您访问远程资源。

我已经浏览了Chrome浏览器的命令行标志,还没有找到允许这样的事情的标志。

相关问题