一尘不染

JavaScript Access-Control-Allow-Origin不允许使用原点null

javascript

我制作了一个小的xslt文件,以使用以下代码创建一个名为weather.xsl的html输出:

<!-- DWXMLSource="http://weather.yahooapis.com/forecastrss?w=38325&u=c" -->
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
exclude-result-prefixes="yweather"
xmlns:yweather="http://xml.weather.yahoo.com/ns/rss/1.0" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#">
<xsl:output omit-xml-declaration="yes" indent="yes"/>
<xsl:strip-space elements="*"/>

<xsl:template match="/">
    <img src="{/*/*/item/yweather:condition/@text}.jpg"/>
</xsl:template>
</xsl:stylesheet>

我想将html输出加载到html文件中的div中,我正在尝试使用jQuery进行如下操作:

<div id="result">
<script type="text/javascript">
$('#result').load('weather.xsl');
</script>
</div>

但是我收到以下错误:Access-Control-Allow-Origin不允许使用Origin null。

我已经读过有关向xslt添加标头的信息,但是我不确定如何做到这一点,因此将不胜感激,并且如果无法以这种方式完成html输出中的加载,则建议如何进行其他操作做到这一点很棒。


阅读 375

收藏
2020-04-25

共1个答案

一尘不染

Origin null是本地文件系统,因此建议您正在加载load通过file:///URL
进行呼叫的HTML页面(例如,只需在本地文件浏览器或类似文件中双击它)。不同的浏览器采用不同的方法将“
相同来源策略”应用于本地文件。

我的猜测是您正在使用Chrome浏览器。Chrome的SOP应用于本地文件的规则非常严格,甚至不允许从与文档相同的目录中加载文件。Opera也是如此。某些其他浏览器(例如Firefox)允许对本地文件的访问受限。但基本上,将ajax与本地资源一起使用将无法跨浏览器工作。

如果您只是在本地测试要真正部署到Web的内容,而不是使用本地文件,请安装简单的Web服务器并通过http://URL进行测试。这样可以为您提供更加准确的安全信息。

2020-04-25