Нужна помощь при размещении данных в приложении asp.net mvc с помощью jquery - PullRequest
3 голосов
/ 11 марта 2010

У меня есть приложение MVC, которое принимает объекты JSON или XML, зависящие от типа запроса. Это приложение основано на этой статье

Для вызова метода в приложении MVC, который требует сложного объекта, я использую следующий Javascript (JQuery):

function GetUnassignedJob() {
if (isInteger($('#txtDay').val()) && isInteger($('#txtMonth').val()) && isInteger($('#txtYear').val()) && isInteger(intCurrentJobSummaryIndex) && intCurrentJobSummaryIndex > -1) {
    $.ajax({
        type: 'POST',
        contentType: 'application/json; charset=utf-8',
        url: 'http://server/api/wip/joboptimise/getlistforids/' + $('#txtYear').val() + '/' + $('#txtMonth').val() + '/' + $('#txtDay').val(),
        data: $.toJSON(aJobSummary[intCurrentJobSummaryIndex].JobIds),
        dataType: 'json',
        cache: false,
        beforeSend: function(XMLHttpRequest) { ShowLoading(); },
        success: function(data, textStatus) {
            try {
                ClearUnassignedJobs();
                AddUnassignedJobs(data);
            }
            catch (e) {
                alert('GetUnassignedJob():\r\n\r\n' + e.message);
                HideLoading();
            }
        },
        error: function(XMLHttpRequest, textStatus, errorThrown) {
            HideLoading();
            ShowStatus('unable to retrieve job list');
        },
        complete: function(XMLHttpRequest, textStatus) {
            HideLoading();
        }
    });
}
else {
    ShowStatus('please ensure you have entered numeric values for day, month and year');
}

}

При развертывании на сервере и доступе с любого клиента в сети - все работает отлично. Однако, когда я пытаюсь сделать то же самое с сервера, я получаю следующее сообщение об ошибке:

Расположение страницы: / api / wip / joboptimise / getlistforids / 2010/3/10

Сообщение: Ожидается элемент 'root' из пространства имен '' .. Обнаружен 'None' с именем '', пространство имен ''.

Источник: System.ServiceModel.Web

Метод: System.Object InternalReadObject (System.Runtime.Serialization.XmlReaderDelegator, Boolean)

Трассировка стека: в System.Runtime.Serialization.Json.DataContractJsonSerializer.InternalReadObject (XmlReaderDelegator xmlReader, логическое verifyObjectName) в System.Runtime.Serialization.XmlObjectSerializer.ReadObjectHandleExceptions (средство чтения XmlReaderDelegator, логическое verifyObjectName) в System.Runtime.Serialization.Json.DataContractJsonSerializer.ReadObject (читатель XmlDictionaryReader) в System.Runtime.Serialization.Json.DataContractJsonSerializer.ReadObject (Потоковый поток) at rbm.api.ObjectFilter.ProcessJson (ActionExecutingContext filterContext)

Некоторые дальнейшие исследования показывают, что свойство InputStream объекта HttpContext пусто! Еще страннее, когда я использую приложение, такое как TcpTrace (чтобы я мог видеть HTTP-трафик), все работает!

Любая помощь будет принята с благодарностью,

Mark

1 Ответ

0 голосов
/ 07 ноября 2011

Предыдущие комментарии верны, используя локальный хост. Вы можете отредактировать файл hosts, расположенный по адресу: windows \ system32 \ drivers \ etc на вашем сервере и добавьте запись, которая отображает локальный хост на URL

 127.0.0.1 www.xyz.com 
...