Member 13706016 Ответов: 2

Ajax call - простой метод веб-службы возвращает всю страницу целиком


У меня есть простая функция в моем веб-сервисе.

[WebMethod]
public string TryWB()
{
    string sMsg = "try";
    return sMsg;
}


и я звоню ему со своей страницы aspx. На самом верху я уже пробовал

[ScriptMethod( ResponseFormat= ResponseFormat.Json)]


(или .xml или даже httpget), и в этой функции я также попытался сериализовать ее с помощью

sMsg = (new JavaScriptSerializer()).Serialize(sMsg);


или даже сделал пользовательский объект просто для того чтобы обернуть сообщение и даже попробовал
JsonConvert.SerializeObject(cm,Newtonsoft.Json.Formatting.Indented);


Из моих страниц aspx сделаны все комбинации текста, xml, json

$.ajax({
    URL: 'FLMSWebService/Login.asmx/TryWB',
    method:"POST", (get also tried)
    contentType: "application/json; charset=utf-8",
    dataType: "text",
    success: function (data) {
        alert('success');
        alert(JSON.stringify(data));
    },
    error: function (jqXHR, exception) {
        alert(jqXHR.responseText);
    }
});


Я пробовал: contentType: json, xml
и я попробовал тип данных : xml , json

Я тоже пробовал в web.config

<system.webserver>
<modules>
<add name="ScriptModule" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>

и
<system.web.extensions>
<scripting>
<webservices>
<authenticationService enabled="true" />


Это все, что я получил от своего 2-дневного поиска в сети...но главное если у меня есть

тип данных: "текст",

Это успех и полная страница возвращается как данные в каждом другом типе данных или contenttype я получаю ошибку и полная страница отображается в

alert(jqXHR.responseText);

в обратном вызове ошибки. Я застрял!! пожалуйста помочь

Что я уже пробовал:

в методе webservice..

пробовал возвращать простую строку, как она есть, или использовать конструктор javascriptserializer
или формат xml (создается простая строка в формате xml)
или объект (в данном случае jsonconvert.serialize)
также используется scriptmethod со всеми responseformats, даже httpget пробовал

файл web.config - добавлен ScriptModule и добавлены webextensions
в scriptmanager EnablePageMethods="true" добавлено

и вошла .(
тип данных все пробовали json xml text (только ttext дает успех, но данные-это полная страница)
contentType: json, xml - пробовал

2 Ответов

Рейтинг:
0

ZurdoDev

В вашей веб-странице

Response.Clear();
Resonse.Write (json object);
Response.Flush();
Response.End();


Происходит то, что вся страница обрабатывается. Промывка и затем завершение ответа предотвратят выполнение остальной части страницы и просто отправят обратно то, что вы поместили в объект ответа.


Рейтинг:
0

Member 13706016

моя веб-страница-это веб-сервис..могу ли я получить доступ к ответу там