【问题标题】:React: Cross origin requests on loading file without local server反应:在没有本地服务器的情况下加载文件的跨源请求
【发布时间】:2015-03-22 14:46:48
【问题描述】:

我有两个模块——一个在 React JSX 中,另一个在 JavaScript 中。

define(function (require) {
    var ExternalJSInterface = require("./../../utils/ExternalJSInterface");
    var ExternalJSXInterface = require("jsx!ExternalJSXInterface");
}

加载 ExternalJSXInterface 时出现此错误:

XMLHttpRequest 无法加载 文件:///Users/.../../ExternalJSXInterface.jsx。跨源请求 仅支持协议方案:http、data、chrome、 chrome-extension、https、chrome-extension-resource。

我认为 ExternalJSInterface 也应该出现同样的错误。但加载它运行良好。

我正在使用带有标志设置 allow-file-access-from-files 的 Chrome。

【问题讨论】:

  • 泰语似乎与 react 无关,而是与您正在使用的模块加载器有关。
  • 但是当我在本地服务器上运行它时,一切正常。只有当我尝试在没有服务器的情况下打开它时,才会收到此错误。
  • 我只是说它与 React 无关。它可能与 JSX(独立于 React)有关,并且肯定与您的模块加载器有关。而且我们仍然不知道您使用的是哪一个。
  • 好的,现在我明白了。我会尝试解决这个问题。谢谢。

标签: javascript google-chrome reactjs requirejs react-jsx


【解决方案1】:

Felix 指出,问题确实出在模块加载器中。我的模块加载器是 jsx-requirejs-plugin,如果我们使用 require 调用,它在内部使用 requirejs-text 加载 jsx 文件。

正如配置部分下requirejs-text的文档中所提到的,如果我们使用“file://”来访问文件,它会受到XHR限制,从而限制了它的使用。

解决方案在此link

希望对某人有所帮助。

【讨论】:

    猜你喜欢
    • 2020-02-01
    • 1970-01-01
    • 2020-04-08
    • 2017-11-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-09
    相关资源
    最近更新 更多