JQuery Ajax不会在Chrome中显示结果

时间:2012-02-03 00:11:56

标签: jquery html xml ajax

这适用于IE 8,但不适用于Chrome 16.0.912.77。有什么想法吗?

<html> 
<head> 
<script src="http://code.jquery.com/jquery-latest.js"></script> 
<script> 
$(document).ready(function()
{
    $.ajax({
        type: "GET",
        url: "test.xml",
        dataType: "xml",
        success: parseXml
    });
});

function parseXml(xml)
{
    $(xml).find("test").each(function()
    {
        $("#test").append("<tr><td>" + $(this).find("name").text()+"</td><td>" + $(this).find("phone").text()+"</td></tr>");
        $('#test').trigger('create');
    });
}

</script> 
</head> 
<body> 

<table id="test" border="1"></table>
</body> 
</html>

1 个答案:

答案 0 :(得分:1)

如果您看到错误“Access-Control-Allow-Origin不允许使用Origin null”,则会遇到跨源资源共享问题。

http://en.wikipedia.org/wiki/Cross-Origin_Resource_Sharing

基本上,使用传统的AJAX,您无法访问其他来源(域)的文件。因此,site1.com无法使用常规AJAX访问site2.com上的内容。有很多方法(JSONP是最常见的)。

您正在遇到这种情况,因为您在本地计算机上运行脚本时,没有列出原点(因此错误中的“Origin null”),并且浏览器不允许您加载该文件。

如果您想继续在本地进行开发,可以使用标志启动Chrome以禁用此本地安全性。点击此处了解详情:http://code.google.com/p/chromium/issues/detail?id=40787

或者,您可以将代码移动到托管服务器,它应该在那里正常工作。