Ошибка.Извлечение JSONP со страницы ASP.NET - PullRequest
2 голосов
/ 03 февраля 2012

Я выполняю междоменную выборку со страницы ASP.NET, используя Jquery-JSONP

Моя страница ASP.NET выглядит следующим образом;

    public partial class Test : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            Response.Write("functionName({'test_param':12345});");
        }
    } 

Это размещено на моемсервер как test.aspx

Я сейчас использую JQuery с локального хоста и пытаюсь получить данные из test.aspx следующим образом:

            $.ajax({
                dataType: 'jsonp',
                url: 'http://abc.com/GTalk/test.aspx?callback=?',
                success: function () {
                    alert("Success");
                },
                error: function (x, y, z) {
                    alert("error" + x.responseText);
                }
            });

Я получаю ошибку x.responseText = "undefined" Ошибка, z, это Error: jQuery171008073005825281143_1328259709467

Я не могу понять, какую ошибку я делаю.Я новичок.

Спасибо.

Ответы [ 2 ]

1 голос
/ 03 февраля 2012

Вместо «functionName» на стороне сервера вы должны напечатать имя функции, которое вы получите через GET-параметры, в виде callback -параметра ( jQuery171008073005825281143_1328259709467 в этом случае).

Вы не можете жестко прописать имя, оно отличается при каждом запросе)

0 голосов
/ 03 февраля 2012

Я не претендую на звание эксперта, просто заинтересованный наблюдатель.

Из предыдущего поста похоже, что тестовый жгут неправильный, т. Е. Ваша страница. Сложность в том, как вы справляетесь с именем динамического обратного вызова? Я немного покопался и нашел пример, который использует asmx webservices и httpmodules, чтобы получить то, что вы хотите.

Доступ к удаленным веб-службам ASP.Net

Если бы я был вами, я бы переделал тестовую страницу как веб-сервис (извините, не очень знаком с WCF) и подключил бы этот модуль вашим собственным методом. В JsonHttpModule похоже, что Write метод выполняет интересную работу, то есть он заключается в том, что он оборачивает запись ответа в сигнатуру метода динамического обратного вызова, которую он выбирает из строки запроса (куда JQuery ее поместит) .

К сожалению, похоже, у вас впереди немного работы, чтобы все заработало. Возможно, есть более быстрые способы, но это все, что я нашел.

...