JSONP意外的令牌<

Ale*_*lex 3 xml json jsonp request

我想请求一个远程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>
Run Code Online (Sandbox Code Playgroud)

我收到错误:

资源解释为脚本但使用MIME类型text/xml传输:" http://www.w3schools.com/xml/note.xml?callback=jQuery1620008313672617077827_1390902958529&_139902958534 ".jquery.min.js:18 Uncaught SyntaxError:意外的令牌<

任何帮助非常感谢.

Tim*_*tje 6

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

但这也意味着你实际上需要获得JSONP,而不是XML.

但是你不能只改变dataTypeto,xml因为上述政策不允许你这样做.

所以服务器需要支持JSONP输出.

解:

您确实需要制作一些服务器端代码.

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

例如:

www.yourserver.com/xmltojson.php?url= http://www.w3schools.com/xml/note.xml

这个脚本会将xml转换为json,你可以通过ajax调用来获取它.(因为这个转换是在你自己的服务器上,不需要jsonp,但普通的json会这样做.

编辑:

为您找到了一个教程:http://weedygarden.net/2011/01/consuming-remote-xml-as-jsonp/