Ошибка синтаксического анализа XML: элемент не найден - PullRequest
4 голосов
/ 18 марта 2011

У меня есть метод веб-службы ASP.Net 4.0, который возвращает правильно сформированный документ XML.Я успешно отображаю XML в браузере локально и однажды развернут на производственном сервере.

Когда я пытаюсь вызвать метод через jQuery ajax, я получаю сообщение об ошибке:

Ошибка синтаксического анализа XML: элемент не найден Расположение: moz-nullprincipal: {6c0c99b3-0fed-454f-aa6e-e0fca93a521c} строка номер 1, столбец 1:

        $.ajax(
        {
            url: 'http://mywebservice.com/WebService/Service.asmx/UserData',
            type: 'GET',
            contentType: "text/html; charset=utf-8",
            dataType: "xml",
            data: 'authorizedId=1234&authorizedUser=Test&authorizedCode=xyz',
            'success': function (data) {
                $('#XMLContent').html(data.responseText);

            },
            'error': function (xhr, status) {
                alert(status);
            },
            'complete': function (xhr) {
            }
        });

Я пытался изменить contentTypeно те же результаты.

Тем не менее, я могу сделать вызов в C # следующим образом, и я получаю свой правильно сформированный XML:

XmlDocument document = new XmlDocument();
document.Load("http://mywebservice.com/WebService/Service.asmx/UserData?authorizedId=1234&authorizedUser=Test&authorizedCode=xyz");
ViewData["XMLData"] = document.OuterXml;

В моем веб-сервисе web.config:

<webServices>
  <protocols>
    <add name="HttpGet"/>
    <add name="HttpPost"/>
  </protocols>
</webServices>

Спасибо ...

Ответы [ 2 ]

2 голосов
/ 18 марта 2011

Если веб-служба не находится в том же домене, что и страница, вы не можете использовать вызовы AJAX для извлечения данных из других доменов.

Вы можете создать прокси-веб-службу в своем приложении, которая вызывает ваши внешниевеб-службы, а затем позвоните своему прокси-серверу из AJAX / jQuery.

http://forum.jquery.com/topic/jquery-ajax-and-xml-issues-no-element-found

Надеюсь, что это поможет

0 голосов
/ 18 марта 2011

Спасибо, bgs264 ...

Теперь на моей странице aspx:

$.ajax(
{
    url: '/Home/WebService',
    type: 'GET',
    contentType: "text/html",
    dataType: "html",
    data: 'authorizedId=1234&authorizedUser=Test&authorizedCode=xyz',
    'success': function (data) {
        alert(data);
        $('#XMLContent').html(data);
    },
    'error': function (xhr, status) {
        alert(status);
    },
    'complete': function (xhr) {
    }
});

В моем контроллере MVC:

public ActionResult WebService(string authorizedId, string authorizedUser, string authorizedCode)
{
        XmlDocument document = new XmlDocument();
        document.Load("http://mywebservice.com/WebService/Service.asmx/UserData?authorizedId=" + authorizedId + "&authorizedUser=" + authorizedUser + "&authorizedCode=" + authorizedCode);
        ViewData["XMLData"] = document.OuterXml;
        return PartialView();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...