我制作了一个小的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输出中的加载,则建议如何进行其他操作做到这一点很棒。
Origin null是本地文件系统,因此建议您正在加载load通过file:///URL 进行呼叫的HTML页面(例如,只需在本地文件浏览器或类似文件中双击它)。不同的浏览器采用不同的方法将“ 相同来源策略”应用于本地文件。
null
load
file:///
我的猜测是您正在使用Chrome浏览器。Chrome的SOP应用于本地文件的规则非常严格,甚至不允许从与文档相同的目录中加载文件。Opera也是如此。某些其他浏览器(例如Firefox)允许对本地文件的访问受限。但基本上,将ajax与本地资源一起使用将无法跨浏览器工作。
如果您只是在本地测试要真正部署到Web的内容,而不是使用本地文件,请安装简单的Web服务器并通过http://URL进行测试。这样可以为您提供更加准确的安全信息。
http://