Ошибка с кодом JSONP.Ошибка: «XML не может быть всей программой» - PullRequest
0 голосов
/ 09 января 2012

Я использую следующий код:

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 ]

2 голосов
/ 09 января 2012

JSONP должен предоставить фрагмент данных, который будет интерпретироваться как Javascript тегом <script>.Он работает, используя уязвимость в модели безопасности браузера, которая позволяет тегам <script> загружать сценарии из любого домена без каких-либо проверок безопасности Cross Origin.

XML - это не так.

2 голосов
/ 09 января 2012

Проблема в том, что вы пытаетесь получить XML с помощью Ajax-вызова, который ожидает JSONP.

Вы должны решить, получать ли XML или JSONP. Если вы хотите получить именно XML, вам придется изменить свой Ajax-вызов, чтобы он ожидал XML в качестве результата.

Так как вы указываете IP, порт и весь шебанг в качестве URL, я думаю, вы намереваетесь выполнить межсайтовый запрос, и если это является причиной, по которой вы указываете JSONP, вы не можете вернуть XML с сервера. XML не разрешен для межсайтовых запросов из-за Одинаковой политики происхождения .

...