使用jQuery读取Google Chrome中的JSON文件错误
我这里有一个JSON文件: 我正在尝试使用Javascript/jQuery在我的网站上阅读:使用jQuery读取Google Chrome中的JSON文件错误,jquery,json,google-chrome,Jquery,Json,Google Chrome,我这里有一个JSON文件: 我正在尝试使用Javascript/jQuery在我的网站上阅读: $.getJSON("http://dalexl.webs.com/products.json") (是的,我知道它还没有完成,我目前只是想把它加载,我还没有读过) 我试着在我自己的站点目录中使用Dreamweaver(我在本地硬盘上使用Dreamweaver) 问题是,在Chrome中(我不确定其他浏览器),控制台会给我以下错误: XMLHttpRequest无法加载。访问控制允许原点不允许原
$.getJSON("http://dalexl.webs.com/products.json")
(是的,我知道它还没有完成,我目前只是想把它加载,我还没有读过)
我试着在我自己的站点目录中使用Dreamweaver(我在本地硬盘上使用Dreamweaver)
问题是,在Chrome中(我不确定其他浏览器),控制台会给我以下错误:
XMLHttpRequest无法加载。访问控制允许原点不允许原点为空。
或:
XMLHttpRequest无法加载json/products.json。访问控制允许原点不允许原点为空。
起初,在线阅读关于这个问题的信息表明,Chrome认为某个网站试图读取我电脑上的文件。但是,将文件联机后,问题仍然存在 有人能解决这个问题吗?如果不应该支持它,为什么jQuery有一个本地方法来支持它
谢谢 您正在尝试打开跨域?见:
您正在尝试打开跨域?见: 不返回有效的json。我喜欢使用它进行测试(当你按下“查看器”按钮时,你会得到一个错误) 您缺少三个逗号: 在“url”之后“#1” 在“url”之后“#2” Before:“Cakes”:{不返回有效的json。我喜欢使用它进行测试(当您按下“查看器”按钮时,会出现错误) 您缺少三个逗号: 在“url”之后“#1” 在“url”之后“#2”
在“Cakes”之前:{除非脚本执行该行的页面
$.getJSON("http://dalexl.webs.com/products.json")
也在http://dalex1.webs.com
,您正在运行与的冲突,即通过XMLHttpRequest
(例如“ajax”)加载资源的限制。有关详细信息,请参阅链接
您绕过SOP的选项有:
- ,这需要修改正在返回的数据,但方法很简单
- ,这是服务器和浏览器都需要支持的相对较新的标准。(Firefox、Opera和Chrome的最新版本都支持
;IE8及更高版本支持它,但仅通过XMLHttpRequest
对象而不是标准XDomainRequest
)XMLHttpRequest
- 在非常棘手的情况下,您可以考虑使用
另外,请注意,您返回的JSON无效(属性之间缺少逗号),请参阅和其他验证工具。现在您已经修复了它。除非脚本在其中执行该行的页面
$.getJSON("http://dalexl.webs.com/products.json")
也在http://dalex1.webs.com
,您正在运行与的冲突,即通过XMLHttpRequest
(例如“ajax”)加载资源的限制。有关详细信息,请参阅链接
您绕过SOP的选项有:
- ,这需要修改正在返回的数据,但方法很简单
- ,这是服务器和浏览器都需要支持的相对较新的标准。(Firefox、Opera和Chrome的最新版本都支持
;IE8及更高版本支持它,但仅通过XMLHttpRequest
对象而不是标准XDomainRequest
)XMLHttpRequest
- 在非常棘手的情况下,您可以考虑使用
另外,请注意,您返回的JSON无效(属性之间缺少逗号),请参阅和其他验证工具。现在您已经修复了它。从我自己的文件系统加载时,它也不起作用。@DadeLamkins:这是因为本地文件系统是源文件系统(源文件“null”)。有些浏览器允许origin null从任何来源检索任何内容,而其他浏览器则不允许。许多浏览器根本不允许ajax调用中的
文件://
协议。但从我自己的文件系统加载时,它也不起作用。@DadeLamkins:这是因为本地文件系统是一个来源(origin“null”)。有些浏览器允许origin null从任何来源检索任何内容,而其他浏览器则不允许。许多浏览器根本不允许ajax调用中的文件://
协议。因此,如果我在Web帐户上托管整个网站,它将起作用?-编辑-如果我在我的计算机上托管自己的小型http服务器,会起作用吗?@DadeLamkins:只要请求没有跨越来源,是的,这将起作用。因此,如果发出调用的页面处于打开状态,则http://dalex1.webs.com
并且请求的数据也在http://dalex1.webs.com
,这将起作用。如果您运行本地web服务器,并且执行请求的页面位于http://localhost
和所请求的数据d在http://localhost
,这样就行了。对于http://localhost
从http://dalex1.webs.com
或反之亦然。请阅读SOP链接了解详细信息。非常感谢!我已决定运行本地服务器,因此不必每隔2秒重新上传一次:)@DadeLamkins:很高兴这有帮助!:-)那么,如果我在Web帐户上托管整个网站,它会工作吗?-编辑-如果我在我的计算机上托管我自己的小型http服务器,那会工作吗?@DadeLamkins:只要请求不跨越来源,是的,那会工作。因此,如果发出调用的页面是打开的http://dalex1.webs.com
,请求的数据为也在http://dalex1.webs.com
,这将起作用。如果您运行本地web服务器,并且执行请求的页面位于http://localhost
并且请求的数据位于http://localhost
,这样就行了。对于http://localhost
从http://dalex1.webs.com
或反之亦然。详细信息请阅读SOP链接。非常感谢!我已决定运行本地服务器,因此不必每隔2秒重新上传一次:)@DadeLamkins:很高兴h