Xml JSONP意外令牌<;

Xml JSONP意外令牌<;,xml,json,request,jsonp,Xml,Json,Request,Jsonp,我想请求一个远程XML文件。我读过JSONP是唯一不用编写服务器端代码就可以做到这一点的方法。我试图使用以下代码请求一个XML文件 <html> <head> <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js"></script> <script> $(d

我想请求一个远程XML文件。我读过JSONP是唯一不用编写服务器端代码就可以做到这一点的方法。我试图使用以下代码请求一个XML文件

<html>
<head>
    <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js"></script>
    <script>
        $(document).ready(function(){
            $.ajax({
                url: 'http://www.w3schools.com/xml/note.xml',
                dataType: 'jsonp',
                success: function(dataWeGotViaJsonp){
                    console.log(dataWeGotViaJsonp);
                }
            });
        })
    </script>
</head>
<body>
</body>
</html>

$(文档).ready(函数(){
$.ajax({
网址:'http://www.w3schools.com/xml/note.xml',
数据类型:“jsonp”,
成功:函数(dataWeGotViaJsonp){
log(dataWeGotViaJsonp);
}
});
})
我得到一个错误:

解释为脚本但使用MIME类型text/xml传输的资源:“”。jquery.min.js:18 未捕获的语法错误:意外标记<


非常感谢您的帮助。

您可能正在尝试通过JSONP获取数据,以绕过同源策略

但这也意味着您实际上需要获取JSONP,而不是XML

但是您不能仅仅将
数据类型
更改为
xml
,因为上述政策不允许您这样做

因此服务器需要支持JSONP输出

解决方案:

不过,您确实需要编写一些服务器端代码

您可以创建一个服务器端脚本,例如通过cUrl访问xml,并将其转换为jsonp

例如:

www.yourserver.com/xmltojson.php?url=

此脚本将xml转换为json,您只需通过ajax调用即可获得它。(因为此转换是在您自己的服务器上进行的,所以不需要jsonp,但可以使用常规json

编辑:

为您找到了一个教程: