我正在尝试将3D模型加载到Three.js中JSONLoader,并且该3D模型与整个网站位于同一目录中.
我收到了"Cross origin requests are only supported for HTTP."错误,但我不知道是什么导致它,也不知道如何解决它.
Python的http.server(或Python的SimpleHTTPServer)是从命令行提供当前目录内容的好方法:
python -m http.server
Run Code Online (Sandbox Code Playgroud)
但是,就网络服务器而言,它非常低调......
它表现得好像是单线程的,并且在使用RequireJS加载JavaScript AMD模块时偶尔会导致超时错误.加载一个没有图像的简单页面可能需要五到十秒钟.
什么是更快的替代方案,同样方便?
我正在开发一个使用Web worker的项目.
在我的脑子部分,我有这个代码:
var worker = new Worker("worker.js");
// More code
Run Code Online (Sandbox Code Playgroud)
这在Safari中运行良好,但Chrome报告以下错误:
Uncaught SecurityError: Failed to create a worker: script at '(path)/worker.js' cannot be accessed from origin 'null'.
为什么这在Safari中完美运行而不是Chrome?我该如何解决?
谢谢.
我的--disable-web-security旗子有问题.它在Windows上的Chrome 48和Chrome 49 beta中无效.
我已经尝试杀死所有实例,重新启动并首先使用标志运行Chrome,尝试使用不同的计算机.在测试版中我可以看到警告弹出窗口("你正在使用不支持的标志.."),但CORS仍在执行中.公共版本似乎完全忽略了这个标志.
似乎没有新闻或人们有关于此的报道,因此它可能是一个本地问题.将不胜感激帮助或任何相关信息.
我正在编写一个jQuery插件,需要能够在iFrame中针对DOM元素运行.我现在正在本地测试这个(即url是file://.../example.html),在Chrome中我一直在点击"SecurityError:无法从'HTMLIFrameElement'读取'contentDocument'属性:阻止了一个框架原点"null"来访问跨域框架." 在Safari中我只得到一个空文档.
鉴于父文件和iFrame的文件都来自我的本地磁盘(在开发中)并且将从相同的服务器(生产中)下来,我认为我不会受到跨源问题的影响.
有没有办法可以说服浏览器我的本地文件实际上是同一个域?
<旁边> 有趣的是在Safari中,直接使用控制台,我可以输入$("iframe").get(0).contentDocument.find("ol"),并愉快地找到我的列表.在Chrome中,同一行会抛出安全错误,就像它正在执行一样.</一旁>
更新
基于下面的建议,我已经启动了一个简单的本地Web服务器来测试这个,现在我没有得到跨源错误 - yay - 但我也没有得到任何内容.
我的Javascript看起来像
$(document).ready(function(){
var myFrame = $("iframe"),
myDocument = $(myFrame.get(0).contentDocument),
myElements;
myDocument.ready(function(){
myElements = myDocument.find("ul, ol");
console.debug("success - iFrame", myFrame, "document", myDocument, "elements", myElements);
});
});
Run Code Online (Sandbox Code Playgroud)
该myDocument.ready是那里只是为了确保iframe的文件准备-在现实中它没有什么区别.
我总是以myElements空虚为结局.([]在safari或jQuery.fn.init[0]Chrome中)
但是,如果我手动将其键入控制台:
$($("iframe").get(0).contentDocument).find("ol, ul")
Run Code Online (Sandbox Code Playgroud)
我按预期得到了我的清单.Safari和Chrome现在都是这种情况.
所以我的问题变成了:为什么我的脚本不能看到DOM元素,但是当直接输入浏览器的控制台时,相同的代码可以很高兴地看到DOM元素?
这是一个简单的问题示例:
<html>
<head>
<link rel='stylesheet' href='myStyle.css'>
<script>
window.onload=function(){
try{
alert(document.styleSheets[0]); // works
alert(document.styleSheets[0].cssRules); // doesn't even print undefined
}catch(e){alert(e)} // catch and alert the error
}
</script>
</head>
<body>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
myStyle.css body{background-color:green;}
如果你使用脚本工作正常 <style></style>
解决方案:
1,作品文件时在线/本地主机
2.作品与其他浏览器(如IE浏览器,微软边缘,火狐)
3 铬--allow-文件访问从-文件
您可以通过embed object和svg标记将SVG文件包含在HTML文件中.
embed或object标记需要将图像与URL链接.(这是我更喜欢的,因为我不喜欢我的HTML代码中的所有SVG代码,所以我想保持这种方式.)svg标记(AFAIK)需要在HTML代码中内嵌SVG代码.如何将SVG图标,图像和其他文件包含到我的HTML文件中,而不必将整个SVG代码放入其中,并且仍然可以将样式应用于它们?通过JS应用它们也很好.
当我通过object或包含它们时embed,我似乎无法通过jQuery访问它们,即使是$("#my-svg-div").find("svg")(顺便说一下,几乎所有关于SO的答案都说我应该).我得到了undefined.
谢谢!
我正在使用vanilla JavaScript创建一个单页面应用程序.我想在不同的文件中组织我的代码以使其模块化,这意味着我应该能够访问另一个文件中的一个文件中定义的函数.我正在使用ES6本机import export:
文件-1.js:
export function func1() {}
export function func2() {}
Run Code Online (Sandbox Code Playgroud)
文件-2.js:
import { func1, func2 } from './file-1';
Run Code Online (Sandbox Code Playgroud)
index.html的:
<script src="file-1.js"></script>
Run Code Online (Sandbox Code Playgroud)
当我在Chrome(版本65)中运行index.html时,出现以下错误:
Uncaught SyntaxError: Unexpected token {.
我的代码有什么问题?Chrome 65完全支持ES6模块系统.
javascript ×7
cors ×2
css ×2
html ×2
3d ×1
ajax ×1
command-line ×1
cross-domain ×1
ecmascript-6 ×1
file ×1
http ×1
httpserver ×1
iframe ×1
jquery ×1
svg ×1
three.js ×1
web-worker ×1
xslt ×1