我使用基本的 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/