Проблема вызова сервисной библиотеки WCF из jQuery

У меня есть библиотека служб WCF, доступная через мой сайт ASPX следующим образом

[System.ServiceModel.OperationContract]
[System.ServiceModel.Web.WebInvoke(
Method= "POST",
RequestFormat=System.ServiceModel.Web. WebMessageFormat .Json,
ResponseFormat=System.ServiceModel.Web.WebMessageFormat .Json)]
LogonResponse Logon(LogonRequest logonRequest);


[System.Runtime.Serialization.DataContract]
[ Serializable()]
public class LogonRequest
{
[System.Runtime.Serialization.DataMember]
public string EMailAddress;
[System.Runtime.Serialization.DataMember]
public string Password;
}

На моей тестовой странице я могу позвонить через MS Ajax: -






.
.
.
function clsLogonRequest(eMailAddress, password) {
this .EMailAddress = eMailAddress;
this .Password = password;
}

function login(eMailAddress, password) {
var LogonRequest = new clsLogonRequest(eMailAddress, password);
name.API.IAPI.Logon(LogonRequest, onSuccess, onFailure);
}

function onSuccess(result) {
$( "#txtSessionId").val(result.SessionId);
$( "#txtUserName").val(result.Name);
$( "#txtUserId").val(result.UserId);
}

который работает нормально, или с помощью вызова jQuery $ .ajax: -

$(document).ready(function() {
$( "#Button1").click(function() {
var LogonRequest = new clsLogonRequest( '*************' , '***********');
$.ajax({
type: "POST",
url: "testService.svc/Logon",
data: "{'logonRequest':" + JSON.stringify(LogonRequest) + "}" ,
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function(msg) {
alert(msg.d);
}
});
});
});

Что нет - под FireBug я вижу сообщение 500 Internal Server Error, и запускается исключение

{"ExceptionDetail":{"HelpLink":null,"InnerException":null,"Message":"The token '\"' was expected but found '''.","StackTrace":"   at System.Xml.XmlExceptionHelper.ThrowXmlException(XmlDictionaryReader reader, String res, String arg1, String arg2, String arg3)\u000d\u000a   at System.Xml.XmlExceptionHelper .ThrowTokenExpected(XmlDictionaryReader reader, String expected, Char found)\u000d\u000a   at System.Runtime...

Почему кажется, что вызов jQuery передает XML, когда яЯ специально говорю, чтобы это не было (и как я могу остановить это, чтобы вызовы из всех источников обрабатывались настолько естественно, насколько это возможно)?

Заранее спасибо.

РЕДАКТИРОВАТЬ:

Спасибо за предложения, яЯ посмотрел на то, что вы сказали, и подумал, что мое объяснение проблемы было недостаточно ясным.

Проблема не в том, что JSON не отправляется, он отправляется и находится в правильном формате, я вижу это из firebug. Проблема в том, что библиотека служб WCF ожидает XML и падает при получении JSON.

Просто чтобы быть уверенным, что у меня нетя упустил из виду предлагаемое решение, вот паутина.мы попытались удалить из поведения и удалить атрибут поведениеConfiguration из тега services / service / endpoint, и это просто приводит к сбою без выхода из страницы.























Заранее спасибо '

Ответы на вопрос(1)

Ваш ответ на вопрос