Javascript 尝试启用CORS:require未定义错误

Javascript 尝试启用CORS:require未定义错误,javascript,node.js,cors,Javascript,Node.js,Cors,Tl;dr:尽管安装了node.JS和requrejs,但我在Chrome JS控制台中发现了一个require未定义的错误 我正在尝试使用main.js中的以下代码访问外部JSON文件中的API密钥: 函数readTextFile(文件,回调){ var rawFile=new XMLHttpRequest(); overrideMimeType(“application/json”); 打开(“GET”,file,true); rawFile.onreadystatechange=函数()

Tl;dr:尽管安装了node.JS和requrejs,但我在Chrome JS控制台中发现了一个
require未定义的
错误


我正在尝试使用
main.js
中的以下代码访问外部JSON文件中的API密钥:

函数readTextFile(文件,回调){ var rawFile=new XMLHttpRequest(); overrideMimeType(“application/json”); 打开(“GET”,file,true); rawFile.onreadystatechange=函数(){ if(rawFile.readyState==4&&rawFile.status==200){ 回调(rawFile.responseText); } } rawFile.send(空); } readTextFile(“../secrets.json”,函数(文本){ var data=JSON.parse(文本); apiKey=data.api_key; 用户名=data.username; });
由于后来我对API使用了XMLHttpRequest,它有一个http://scheme,所以我希望使用CORS来处理同源策略

我将这些行放在
main.js
的开头:

var-cors=require('cors'))
var app=express()
应用程序使用(cors());
我的目录结构如下所示:

/project
index.html
secrets.json
/剧本
main.js
require.js
在Chrome上的JS控制台中,我得到一个
未定义require
错误。我哪里出错了?

require()
是NodeJS功能,有关详细信息,请参阅

您能否共享启动应用程序的命令?

此代码:

var cors = require('cors')

var app = express()
app.use(cors());
属于node.js服务器。不得在铬合金内部运行。它的目的是帮助您创建一个http服务器,该服务器可以接受来自浏览器的跨源http请求

如果您试图从中发出请求的服务器本身明确允许跨源XMLHttpRequest,则浏览器将只允许跨源XMLHttpRequest。因此,无论是什么服务器,只要它支持您试图使XMLHttpRequest允许跨源请求的URL(通常通过支持CORS)。如果服务器不支持您的跨源呼叫,则您必须修改该服务器的代码,或通过某种您有权访问的代理发出请求,该代理将为您获取数据并将其转发回浏览器

我哪里出错了

嗯,
require('cors')
以及下面显示的另外两行代码并不意味着要在浏览器中运行。它们在node.js环境中运行,用于创建http服务器,然后您可以从外部代理(如浏览器的网页)连接到该服务器


在浏览器中,如果服务器尚未配置为接受跨源请求,则无法执行任何操作。您只有两个选择,即更改目标服务器或使用代理。

require()
不是Chrome本身存在的东西。它存在于node.js中。你想在Chrome上运行它,为什么?
main.js
是您试图在Chrome中运行的东西吗?这是node.js代码,不是可以在Chrome.express中运行的代码。js和cors与使用javascript进行服务器端开发有关,不是要在Chrome控制台中执行的代码。谢谢你的帮助,我对node.js非常陌生。那么,如何创建node.js环境来运行这些行呢?或者有没有其他方法可以不使用XMLHttpRequest访问本地文件?