Назовите веб-метод внешнего сайта с помощью jsonp? - PullRequest
1 голос
/ 03 апреля 2012

Я пытаюсь позвонить на внешний сайт через веб-метод и опубликовать некоторые данные.Я пробовал много разных способов и до сих пор не могу вызвать метод.

Вот мой код js:

$.ajax({
            url: "http://sitename.com/methods.aspx/mywebmethod",
            data: "{'id':'" + 4 + "'}",
            dataType: "jsonp",
            type: "GET",
            contentType: "application/json; charset=utf-8",
            success: function (data) {
                alert(data);
            },
            error: function (XMLHttpRequest, textStatus, errorThrown) {
                alert(errorThrown);
            }
        });

Вот мой код веб-метода:

[WebMethod()]
        public static bool mywebmethod(int id)
        {
if(id != 0){
            return true;}
else{return false;}
        }

и я всегда получаю один и тот же ответ

Error: jQuery{code} was not called

Что мне не хватает?

Ответы [ 2 ]

3 голосов
/ 03 апреля 2012

JSONP не волшебство.

Вы можете использовать JSONP только для чтения данных с URL, который возвращает JSONP-скрипт .
ASP.Net WebMethods не поддерживает JSONP.

0 голосов
/ 12 апреля 2012

Полагаю, вам не хватает подходящих атрибутов, как показано ниже (в определении .asmx):

    [WebMethod(EnableSession = true)] // optional, but usually forgotten
    [ScriptMethod(UseHttpGet = true, ResponseFormat = ResponseFormat.Json)]
    public bool MyMethod(int id)
    {
        return true;
    }

плюс, вам также нужен модуль Content-rewrite для обработки ведущего параметра обратного вызова, а также:

http://www.codeproject.com/Articles/43038/Accessing-Remote-ASP-NET-Web-Services-Using-JSONP

...