Ответы на seabridge client скачать | |
Вызов ASP.NET PageMethod / WebMethod с помощью jQuery - возвращает всю страницу.JQuery 1.3.2, ASP.NET 2.0. Выполнение AJAX-вызова к PageMethod (WebMethod) возвращает полную/целую страницу, а не просто ответ. Точка останова на методе страницы показывает, что его никогда не ударили. У меня есть атрибут [WebMethod] в моем методе, и он является общедоступным статическим, возвращает строку и не принимает никаких параметров. Я даже попытался добавить [ScriptService] в начало моего класса, чтобы посмотреть, помогло ли это, но это не помогло. Я видел этот пост Jquery AJAX с ASP.NET WebMethod Returning Full Page, у которого были те же симптомы, но у меня все еще есть проблема. Я читаю http://encosia.com/2008/05/29/using-jquery-to-directly-call-aspnet-ajax-page-methods/ и чувствую, что слежу за этим к Т, но до сих пор нет удачи. Я делаю вызов jQuery: Заголовки запроса/ответа согласно Firebug в FF3 выглядят следующим образом. Я добавил ScriptManager на свою страницу только для того, чтобы узнать, помог ли он, но не повезло. 8 ответов. Знаете ли вы, что методы страницы работают правильно? Если вы используете ScriptManager, они работают? Похоже, что вы можете потерять запись в web.config. В частности, раздел HttpModules. Мне не хватало одной строки из моего web.config: Я снова столкнулся с этой проблемой сегодня по другой причине: у меня было ошибочное "приложение" в. И получал полностраничный ответ вместо вызова метода WebMethod. Если вы попробовали все это и все еще получили всю страницу, возвращенную с вашего pagemethod, вы можете захотеть убедиться, что вы не используете дружественные URL-адреса. Если вы используете их, этот трюк может помочь вам. Добавьте эту строку в свой js script, прежде чем совершать вызов: Бросьте это здесь как примечание. Я получал эту ошибку из-за длины моих строковых переменных в моей строке HTML, и веб-сайт, который я использовал для вызова моего ajax, выглядел следующим образом. Он не смог правильно извлечь ссылку .aspx, поэтому я просто закодировал свою веб-страницу вместо использования loc var. Комментирование следующей строки в RouteConfig.cs работает для меня. После почти двух часов и после того, как я попробовал все, что я окончательно решил. @Комментарий Марвина Зумбадо помог мне. Мне не хватало .aspx от моего url.I знаю, что это не мой лучший момент в качестве программиста! Большинство сценариев ajax, которые я видел, действительно должны вызывать веб-службу или отдельный обработчик script, а не страницу. Это очень легко сделать в .net 3-5, не так просто в 2-0. Даже после того, как вы выясните (если), как не загружать всю страницу, вот причины не вызывать метод страницы: 1) Метод страницы может загружать меньше материала, чем полная загрузка страницы, но все же гораздо больше, чем вам нужно для простого вызова ajax. 2) Отвратительное разделение обязанностей. Возможно, страница ответственна за красивую прокладку, а не за логику, которую вы используете в методе ajax. 3) Возможно, вам нужно какое-то состояние сеанса, но это все равно должно быть доступно. В настоящее время я обновляю свои знания по этому вопросу. Я буду искать хороший ответ на этот вопрос в этой теме, или я отправлю на следующей неделе. Вот направление, в котором я возглавляю. 1) Отправьте JSON с сервера на клиент и используйте javascript для обновления вашей страницы. - различные структуры позволяют легко создавать JSON с веб-сервера. 2) JQuery делает ajax-вызовы, обработку json и форматирование для клиентов забавным, а не болезненным. Ответы на seabridge client Ответы на seabridge client | |
|