Проблема $ .get, $ .post, $ .ajax, $ (elm) .load to .ashx - PullRequest
2 голосов
/ 15 декабря 2010

HTML-страница

    // in script tag
    $(document).ready(function () {
        var url = "list.ashx";

        $.get(url + "?get", function (r1) { alert("get: " + r1); });
        $.post(url + "?post", function (r2) { alert("post: " + r2); });
        $.ajax(url + "?ajax", function (r3) { alert("ajax: " + r3); });
        $("div:last").load(url + "?load", function (r4) { alert("load: " + r4); });
    });

    // in body tag
    <div></div>

в 'list.ashx'

public void ProcessRequest (HttpContext context) { context.Response.Write("ok"); }

результат

  • $. Get и $ .post достигают list.ashx, но нет возврата
  • $. Ajax не достигает list.ashx
  • $. Загрузка полностью успешна

Проблемы

  • почему работает только '$ .load'?
  • как заставить работать $ .get или $ .post?

обновление

        $("input").click(function () {
            $.ajax({ url: url
                , context: this
                , data: "ajax=test"
                , cache: false
                , async: false
                , global: false
                , type:"POST"
                , processData: false
                , dataType: "html"
                , success: function (data) { alert(data); }
                , error: function (data) { alert(data.responseText); }
                });
        });

всегда ошибка: function () {}, но 'data.responseText' - правильный результат !!

Ответы [ 2 ]

6 голосов
/ 15 декабря 2010

Ну, причина, по которой ваш $.ajax() не работает, в том, что он синтаксически неверен .Это должно выглядеть примерно так:

$.ajax({
    type: "POST", // or "GET"
    url: "list.ashx",
    data: "postvar=whatever",
    success: function(r3){
       alert("ajax: " + r3);
    }
});

Кроме того, при использовании $.get и $.post вы должны поместить данные во второй параметр:

$.get(url, 'getvar=whatever', function (r1) { alert("get: " + r1); });
$.post(url, 'postvar=whatever', function (r2) { alert("post: " + r2); });

// or use a map

$.get(url, { getvar : 'whatever' }, function (r1) { alert("get: " + r1); });
$.post(url, { postvar : 'whatever' }, function (r2) { alert("post: " + r2); });
1 голос
/ 15 декабря 2010

Поскольку вы запускаете четыре асинхронных запроса за один переход на одну и ту же страницу, это может иметь значение:

...