【问题标题】:PhantomJS is not allowed to load local resourcePhantomJS 不允许加载本地资源
【发布时间】:2014-09-21 20:05:09
【问题描述】:

尝试在 PhantomJS 中使用 $.getJSON 加载本地 json 文件时,我收到错误消息:

不允许加载本地资源:file://test.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,但我始终收到相同的错误消息。

【问题讨论】:

  • PHP 脚本自己运行是否正常。您是否进行了测试以确保它不是 Web 服务器问题?您是否还监视了 apache 错误日志文件以查看是否有任何安全问题
  • 我根本不使用PHP,也没有涉及Apache Server!
  • 我不知道我怎么认为它是 PHP :()。我想我知道问题所在。它的 Control-Allow-Origin: * 阻止了你。试试这个谷歌浏览器的扩展并给它一个测试——chrome.google.com/webstore/detail/allow-control-allow-origi/…

标签: jquery phantomjs mocha.js chai


【解决方案1】:

如果你想从文件系统中读取一个文件,你应该使用fs 模块。比如这样:

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

没有可用于允许 PhantomJS 从远程位置访问本地文件的命令行选项。 --local-to-remote-url-access=true 做其他事情。如果您在 about:blank 页面上,则允许您访问远程资源。

我查看了 Chrome 的命令行标志,但没有找到一个允许这样的事情。

【讨论】:

    猜你喜欢
    • 2016-10-08
    • 2016-11-04
    • 2014-12-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多