JSONP代码出错。错误:“XML不能是整个程序”

时间:2012-01-09 19:39:18

标签: jquery xml jsonp

我使用以下代码:

function getXml(username)
{
    $.ajax({
            type:"GET",
            dataType:"jsonp",
            url: "http://76.222.193.173:8080/vvmfb/users/"+username,
            success: function(jsonp)
            {
                //alert(jsonp);
            }
        });
}
getXml('farhana');

但它给了我这个错误信息:

XML can't be the whole program
http://76.222.193.173:8080/vvmfb/users/farhana?callback=jQuery17108919437211861222_1326137662617&_=1326137662621
</user>
Line 12

可以在以下位置看到XML文件: http://76.222.193.173:8080/vvmfb/users/farhana

任何想法,为什么会发生这种情况? 任何帮助将受到高度赞赏。谢谢!

2 个答案:

答案 0 :(得分:2)

问题是您正在尝试使用期望JSONP的Ajax调用来接收XML。

您必须决定是否接收XML或JSONP。如果它是您打算接收的XML,那么您将不得不更改您的Ajax调用,以便期望XML作为结果。

由于您将IP,端口和整个shebang指定为URL,我猜您打算执行跨站点请求,如果这是您指定JSONP的目的,那么您无法从服务器返回XML。由于Same Origin Policy

,不允许XML进行跨网站请求

答案 1 :(得分:2)

JSONP 必须提供一大块数据,这些数据将被<script>标记解释为Javascript。它的工作原理是利用浏览器安全模型中的弱点,允许<script>标记从任何域加载脚本,而不进行任何跨域安全检查。

XML不是那样。