我试图加载一个3D模型,存储在我的电脑本地,到Three.js与JSONLoader, 3D模型是在同一目录下,作为整个网站。
我得到了“跨起源请求只支持HTTP.”错误,但我不知道是什么原因导致它也不知道如何修复它。
我试图加载一个3D模型,存储在我的电脑本地,到Three.js与JSONLoader, 3D模型是在同一目录下,作为整个网站。
我得到了“跨起源请求只支持HTTP.”错误,但我不知道是什么原因导致它也不知道如何修复它。
当前回答
为java安装本地web服务器,例如Tomcat,对于php,您可以使用lamp等 将json文件放到公共可访问的应用服务器目录中 启动应用程序服务器,您应该能够从localhost访问该文件
其他回答
对于那些在Windows上没有Python或Node.js的人,仍然有一个轻量级的解决方案:Mongoose。
您所要做的就是将可执行文件拖到服务器的根目录,然后运行它。一个图标将出现在任务栏中,它将导航到默认浏览器中的服务器。
此外,Z-WAMP是一个100%可移动的WAMP,在一个文件夹中运行,这是很棒的。如果你需要一个快速的PHP和MySQL服务器,这是一个选择。不过从2013年起就没有更新过。现代的替代方案是Laragon或WinNMP。我还没有对它们进行测试,但它们是可移植的,值得一提。
此外,如果你只想要绝对的基础(HTML+JS),这里有一个小的PowerShell脚本,不需要安装或下载任何东西:
$Srv = New-Object Net.HttpListener;
$Srv.Prefixes.Add("http://localhost:8080/");
$Srv.Start();
Start-Process "http://localhost:8080/index.html";
While($Srv.IsListening) {
$Ctx = $Srv.GetContext();
$Buf = [System.IO.File]::OpenRead((Join-Path $Pwd($Ctx.Request.RawUrl)));
$Ctx.Response.ContentLength64 = $Buf.Length;
$Ctx.Response.Headers.Add("Content-Type", "text/html");
$Buf.CopyTo($Ctx.Response.OutputStream);
$Buf.Close();
$Ctx.Response.Close();
};
这个方法非常简单,它不能显示目录或其他花哨的东西。但是它很好地处理了这些CORS错误。
将脚本保存为服务器。在项目的根目录下运行。它将在它所在的目录中启动index.html。
我怀疑在一些答案中已经提到了它,但我将稍微修改一下,以获得完整的工作答案(更容易找到和使用)。
访问:https://nodejs.org/en/download/。安装nodejs。 通过命令提示符npm Install -g http-server安装http-server。 切换到你的工作目录,index.html/yoursome.html所在的目录。 运行http-server -c-1命令启动http服务器
打开网络浏览器http://localhost:8080 或http://localhost:8080/yoursome.html -取决于您的HTML文件名。
简单的解决方案,谁使用VS Code
我得到这个错误已经有一段时间了。大多数答案都是可行的。但我找到了一个不同的解决方案。如果你不想处理node.js或任何其他解决方案在这里,你正在使用一个HTML文件(从另一个js文件调用函数或获取json api的)尝试使用Live Server扩展。
它允许您轻松地打开一个活动服务器。因为它创建了本地主机服务器,所以问题得到了解决。您可以通过打开HTML文件并右键单击编辑器并单击open with Live Server来启动localhost。
它基本上使用http://localhost/index.html加载文件,而不是使用file://....
EDIT
不需要有.html文件。您可以使用快捷方式启动活动服务器。
按(alt+L, alt+O)打开服务器,按(alt+L, alt+C)停止服务器。[在MAC上,cmd+L, cmd+O和cmd+L, cmd+C]
希望它能帮助到别人:)
我将列出3种不同的方法来解决这个问题:
Using a very lightweight npm package: Install live-server using npm install -g live-server. Then, go to that directory open the terminal and type live-server and hit enter, page will be served at localhost:8080. BONUS: It also supports hot reloading by default. Using a lightweight Google Chrome app developed by Google: Install the app, then go to the apps tab in Chrome and open the app. In the app point it to the right folder. Your page will be served! Modifying Chrome shortcut in windows: Create a Chrome browser's shortcut. Right-click on the icon and open properties. In properties, edit target to "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" --disable-web-security --user-data-dir="C:/ChromeDevSession" and save. Then using Chrome open the page using ctrl+o. NOTE: Do NOT use this shortcut for regular browsing.
注意:使用类似http://localhost:8080的http://以防出错。
我建议您使用一个迷你服务器在本地主机上运行这类应用程序(如果您没有使用某些内置服务器)。
这里有一个非常简单的设置和运行:
https://www.npmjs.com/package/tiny-server