我正在制作一个简单的JavaScript应用程序,需要在其中加载xml文件并将其显示在用户面前。但是我的代码只能在Mozilla
Firefox中使用,但是在chrome和Internet Explorer上却无法使用。我正在将XML文档加载到本地计算机中。
$(document).ready(function() {
$('.buttons').slideToggle('medium');
$.ajax({
url: "dictionary.xml",
success: function( xml ) {
$(xml).find("word").each(function(){
$("ul").append("<li>" + $(this).text() + "</li>");
});
}
});
}
这是我的XML
<?xml version="1.0" encoding="UTF-8"?>
<xml>
<word>
<threeletter>RIP</threeletter>
<fourletter>PIER</fourletter>
<fiveletter>SPIRE</fiveletter>
<sixletter>SPIDER</sixletter>
</word>
<word>
<threeletter>SUE</threeletter>
<fourletter>EMUS</fourletter>
<fiveletter>SERUM</fiveletter>
<sixletter>RESUME</sixletter>
</word>
<word>
<threeletter>COO</threeletter>
<fourletter>CON</fourletter>
<fiveletter>CONDO</fiveletter>
<sixletter>CONDOM</sixletter>
</word>
</xml>
我发现了错误,这是
XMLHttpRequest cannot load file:///C:/Users/John/Desktop/JsTwist/dictionary.xml. Origin null is not allowed by Access-Control-Allow-Origin.
file://
默认情况下,Google Chrome不允许通过该协议进行AJAX请求。
您需要使用该--allow-file-access
开关启动Chrome 。
以下是在每个OS上提供开关的说明。
我不确定如何为IE启用文件协议。
可能最简单的方法是设置本地Web服务器,并与其中的xml文件一起运行您的应用程序,这样您就不必在任何一个浏览器中都担心此问题。
编辑
我知道后期编辑。我想把这个扔出去,以防其他人遇到问题。
使用jQuery请求xml文档时,应 始终 在settings对象中提供dataType。在内部,jQuery最好猜测返回的内容,而我认为它是HTML
/ XHTML的一个很好的xml文档。
为此,添加 dataType:“ xml” 。例如:
$(document).ready(function() {
$('.buttons').slideToggle('medium');
$.ajax({
url: "dictionary.xml",
success: function( xml ) {
$(xml).find("word").each(function(){
$("ul").append("<li>" + $(this).text() + "</li>");
});
},
dataType: "xml"
});
}
在jQuery.ajax()的文档页面上提供了受支持的数据类型。
另外,在尝试从远程服务器获取RSS提要时,我还遇到了上面的 Access-Control-Allow-Origin
错误。我确定解决此问题的唯一方法是代理从服务器端代码请求RSS提要,并通过某些代理脚本进行传递。这是PHP中的一个简单示例:
<?php
if(isset($_GET['q']) && isAjax())
{
$q = strip_tags($_GET['q']);
header("Status: 200");
header("Content-type: text/xml");
echo file_get_contents('http://'.$q);
exit();
}
function isAjax() {
return (isset($_SERVER['HTTP_X_REQUESTED_WITH']) &&
($_SERVER['HTTP_X_REQUESTED_WITH'] == 'XMLHttpRequest'));
}
?>
CAVEAT
我强烈建议修改上面的脚本,以允许您仅通过验证q
或进一步限制isAjax
功能来计划为客户代码提供服务的那些位置。我不是PHP开发人员,所以我不假装了解PHP安全性的最佳做法。如果有人对改进PHP代码段有任何建议,我会很乐意应用它们。
我已经将log4j从1.2.17升级到了2.16.0。因此我不得不重写我的log4j。并将其重命名为log4j2.xml。我已经做了必要的改变。然而,我的新配置似乎没有加载。我试图通过两个web配置log4j。xml: 和。两种方法都失败了,我在mylog.log文件中没有任何日志。但是当在本地运行应用程序时,控制台会显示日志。 这是我的log4j2.xml: 我尝试使用以下工具调试log4j配置
我有一个类似于这个链接中的问题,但当我尝试我这边的解决方案时,它不起作用。 我创建了一个名为“example1”的新项目。然后,我在GitHub上创建了一个名为“example1”的存储库。 提交所有更改后,我运行 发现了这个信息: 然后我添加了以下命令: 然后检查: 但是,当我再次尝试进行git推送时,仍然会遇到上述相同的错误。 如何将代码推送到GitHub存储库?
我正在尝试上传一个文件名和一个帖子(9插科打诨风格)到我的mysql数据库,并存储文件到我的项目文件夹。我正在从前端获取文件(前端的console.log工作得很完美),然后我使用nodejs+express后端处理文件并将其发送到我的数据库。我创建了一个multer中间件来设置文件名,扩展名,磁盘位置,然后在一个控制器中我试图得到文件发送它做数据库。console.log“route ok”可以
问题内容: 我有一个使用Spring3和Hibernate4的Web项目,现在我想在不使用xml文件的情况下测试DAO。为此,我创建了一个类,该类使用应用程序的xml文件中包含的数据和一个简单的测试类创建一个LocalSessionFactoryBean。 但是, localSessionFactoryBean.getObject() 返回的 sessionFactory 为null。我一直在寻找
Envelope.java 主ube.java Cube.java(直到这里它的工作) 货币ube.java
我正在使用Eclipse,正在进行一个J2EE项目。我们正在尝试为单元测试编写Groovy/Spock测试。该项目是一个Maven项目,并为其添加了Groovy特性。问题是,如果我编辑任何Groovy测试类,它都不会被编译。因此,作为Junit运行测试并没有获得最新的更改。我必须运行一个Maven构建,以获取测试类最近的更改。 我的设置, Groovy编译器2.4 检查了另一个问题,它没有多大帮助