Ajax jQuery и веб-сервис ASP.NET работают локально, но не удаленно

Интересный здесь. У меня есть ASP.NET 1,1 проекта, которые содержат веб-сервис в нем. Я использую функциональность Ajax jQuery для вызова некоторых сервисов от клиента. Это - то, на что похож мой код:

$.ajax({
    type: "POST",
    url: 'foo.asmx/functionName',
    data: 'foo1=' + foo1 + '&foo2=' + foo2,
    dataType: "xml",
    success: function(xml) {
        //do something with my xml data
    },
    error: function(request, error){
        //handle my error

    }       

});

Это работает отлично, когда я выполняю сайт от своего IDE на localhost. Однако, когда я развертываю этот сайт на любом другом сервере, я получаю parsererror ошибку из jQuery. Это, кажется, даже не называет мой сервис, когда я заглядывал некоторому коду для записи файла журнала в диск, и это не делает его там.

Тот же точный XML должен быть возвращен и из моего localhost и из сервера, к которому я развернулся.

Какие-либо идеи?

5
задан Alex 6 April 2010 в 15:17
поделиться

4 ответа

Я нашел ответ на этот вопрос. После некоторой отладки с помощью Firebug я заметил, что сервер возвращал некоторую ошибку HTML. Я просмотрел журнал ошибок на стороне сервера, и исключение было «Формат запроса не распознан».

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

<system.web>                
<webServices>
    <protocols>
        <add name="HttpGet"/>
        <add name="HttpPost"/>
    </protocols>
</webServices>
</system.web>

Теперь я немного интересует тот факт, что мой localhost не имеет этой записи web.config и работает независимо. Если кто-то понимает это немного лучше, я хотел бы знать, почему.

Спасибо за все предложения.

8
ответ дан 14 December 2019 в 01:05
поделиться

Вы изучили XML, который возвращается при развертывании приложения, чтобы убедиться, что он тот же самый?

Для тех, кто задается вопросом, когда вы получите ошибку разбора jQuery, похоже, что это связано с XML-возвращающими веб-сервисами: http://groups.google.com/group/jquery-en/browse_thread/thread/a97f10ae30824fba?pli=1

0
ответ дан 14 December 2019 в 01:05
поделиться

Что вы имеете в виду "parsererror" из jQuery?

Мои первые два прохода были бы следующими:

1- использовать firebug для получения дополнительных сведений об ошибке http://encosia.com/2009/03/04/use-jquery-to-catch-and-display-aspnet-ajax-service-errors/

2- преобразовать ваши данные строка к объекту json '{"foo1": "bar1", "foo2": "bar2"}'

1
ответ дан 14 December 2019 в 01:05
поделиться

Вы уверены, что foo.asmx попадает в нужное место, вы вообще меняли структуру папок?

0
ответ дан 14 December 2019 в 01:05
поделиться
Другие вопросы по тегам:

Похожие вопросы: