javascript - 可以对文件 ://protocol? 使用react

标签 javascript ajax templates reactjs protocols

我使用基本的 jQuery 和 lodash 的模板开发了几个工具。

我意识到使用 Ajax 调用的那些库不能在文件系统上工作,并且在我尝试使用 ajax 加载模板时出现此错误:

XMLHttpRequest cannot load file:///Users/Pro/Google%20Drive/dev/tasks/webDevEnvironment/public/html/pipeline-doc/templates/content-one-variable.html.
Cross origin requests are only supported for protocol schemes: http, data, chrome, chrome-extension, https, chrome-extension-resource

我真的很喜欢 React 的哲学,对于我正在构建的小工具来说,它可能有点矫枉过正。在我开始重新编码所有内容之前,我想知道 React 应用程序是否在后台使用 ajax 模板,或者是否可以将所有内容加载到脚本标签中?

我刚开始使用 React,据我所知,在 file://协议(protocol)上工作不会有问题...但我更愿意确定!

最佳答案

在最基本的情况下不会有问题。不过,根据您对它的处理方式,它可能很快就会出现问题。

一个简单的解决方法是不通过 file:// 协议(protocol)执行此操作。您可以轻松地在节点中创建类似于轻量级 express 服务器的东西,然后允许您通过 http:// 协议(protocol)进行操作并回避整个问题。

var express = require('express'),
    app = express();

app.use(express.static('source-files-directory-goes-here'));
app.listen(3000, function () { console.log('Listening on port 3000'); });

将其放入名为 server.js 的文件中,然后您可以使用 node server.js 运行它,它会从您想要的任何文件中搜索文件位于 http://localhost:3000 的目录中。你只需要使用 npm install express 来获取它。

如果你想要一个 package.json,如果你无论如何都要使用 React,你会想要它,你可以有这样的东西:

{
    "dependencies": {
        "express": "latest"
    },
    "scripts": {
        "start": "node server.js"
    }
}

然后使用 npm start 运行它。

关于javascript - 可以对文件 ://protocol? 使用react,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40268991/

相关文章:

javascript - 通过 AJAX 加载页面时输出 Javascript 变量

c++ - (目标-)C++ 模板特化上的重复符号

c++ - 模板类关系

javascript - 抛出错误时单元测试未通过

javascript - html中的鼠标悬停效果

javascript - Emberjs 数组 Controller

javascript - 如何在 ruby​​ on rails 中对 onclick-javascript 调用操作

JavaScript Bookmarklet 发送 AJAX 请求......有时?

c++ - 与 C++/CLI 和模板的协变

javascript - 在 Vue + .Net 核心应用程序中对组件使用导入时,获取 "TypeError: "_Ctor"is read-only"