jQuery / ASP MVC - parsererror в вызовах "$ .ajax" - PullRequest
4 голосов
/ 17 марта 2009

Я хотел бы создать простую ссылку действия в ASP.Net MVC RC2 с использованием jQuery 1.3.1 - примерно так:

<a href="#" onclick="AjaxTest1()">Tester</a>

с функцией AjaxTest1:


function AjaxTest1() {
            $.ajax({
                    url: "Home/Ajax1",
                    error: function(request, status, error) {
                        alert("error: " + status + ", " + "\n" +
                               error + ", " + request.responseText +
                               request.getAllResponseHeaders());
                    },
                    success: function(data, status) {
                         alert("Finally, it worked!");
                    },
                    type: "GET",
                    dataType: "text",
                });
                return false;
        }

и действие контроллера:


public ActionResult Ajax1()
        {
            return this.Content("Test Content");
        }

Все, что я пытаюсь сделать, это вернуть простую строку - но обратный вызов «error» всегда вызывается с ошибкой parseerror. XmlHttpRequest содержит строку содержимого «Test Content» - поэтому вызывается действие контроллера и возвращаются правильные данные. Я попытался установить dataType («text», «html», «json»), использовать тип JsonResult в контроллере, установить возвращаемый тип содержимого «text / plain», использовать $ .get , $ .getJson и т.д ... ничего не работает. Я чувствую, что, должно быть, я что-то упускаю очень, очень просто - тем более, что Google не поможет. Идеи?

Ответы [ 2 ]

5 голосов
/ 18 марта 2009

Не могу поверить, что я понял это - в jquery-1.3.1*vsdoc.js есть опечатка (ее в jQuery.httpData, если кому-то интересно - они определяют входной параметр как filter, затем попытайтесь сослаться на него как s, что вызывает исключение). Как ни странно, если вы используете версию не * vsdoc, опечатка отсутствует.

Похоже, они выпустили jQuery-1.3.2 с vsdocs, в котором нет опечатки. Так что я бы сказал, что ответ - просто загрузить обновление. ( Страница загрузки jQuery )

Настал день моей жизни ... надеюсь, это кому-нибудь поможет.

1 голос
/ 17 марта 2009

Вы получили эту статью в своих путешествиях в великую пустоту Google?

http://encosia.com/2008/06/05/3-mistakes-to-avoid-when-using-jquery-with-aspnet-ajax/

У него также есть много других статей о взаимодействии asp.net и jquery.

Вы пробовали POSTing вместо GETing? как указано здесь: http://weblogs.asp.net/scottgu/archive/2007/04/04/json-hijacking-and-how-asp-net-ajax-1-0-mitigates-these-attacks.aspx

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...