2010-03-20 11 views
6

Próbuję zrobić coś, co moim zdaniem byłoby proste. Potrzebuję utworzyć usługę WCF, które można publikować za pośrednictwem JQuery. Mam operację w moim usług WCF, który jest zdefiniowany następująco:WCF - "Napotkany nieoczekiwany znak" c "."

[OperationContract] 
[WebInvoke(Method = "POST", BodyStyle = WebMessageBodyStyle.WrappedRequest, RequestFormat=WebMessageFormat.Json, ResponseFormat=WebMessageFormat.Json)] 
public string SendMessage(string message, int urgency) 
{ 
    try 
    { 
    // Do stuff 
    return "1"; // 1 represents success 
    } 
    catch (Exception) 
    { 
    return "0"; 
    } 
} 

I spróbuj uzyskać dostęp do tej operacji od strony ASP.NET za pomocą jQuery. Mój kod JQuery, aby uzyskać dostęp do tej operacji wygląda następująco:

function sendMessage(message) { 
    $.ajax({ 
    url: "/resources/services/myService.svc/SendMessage", 
    type: "POST", 
    contentType: "application/json; charset=utf-8", 
    data: ({ message: message, urgency: '1' }), 
    dataType: "json", 
    success: function (data) { 
     alert("here!"); 
    }, 
    error: function (req, msg, obj) { 
     alert("error: " + req.responseText); 
    } 
    }); 
} 

Po uruchomieniu tego skryptu uruchamiany jest moduł obsługi błędów. W nim pojawia się błąd, który mówi:

"Napotkany nieoczekiwany znak" c "."

Ten komunikat jest dołączony do długiego śledzenia stosu. Moje pytanie brzmi: co robię źle? Otrzymałem inne posty, takie jak ten (How to post an array of complex objects with JSON, jQuery to ASP.NET MVC Controller?) bez żadnego szczęścia. Jak działa ta podstawowa interakcja?

Dziękujemy!

+1

Chyba jesteś przekazywania parametrów nieprawidłowo. Spójrz na następującą stronę: [3 błędy, których należy unikać podczas korzystania z jQuery z ASP.NET AJAX] (http://encosia.com/2008/06/05/3-mistakes-to-avoid-when-using-jquery -with-aspnet-ajax /) – Giorgi

+0

Ta strona jest dla mnie niedostępna w tej chwili - co ona powiedziała? –

Odpowiedz

3

Myślę, że musisz powiązać swoje dane JSON w żądaniu. Więcej informacji: here. Możliwe jest również zanalizowanie przychodzących danych odpowiedzi, ponieważ zostaną one uszeregowane w zamian. Zwykłą bibliotekę odpowiednią do tego zadania można znaleźć pod adresem here.

Np .: dane: '{komunikat: "Komunikat", pilność: "1"}',

+0

Miałem ten sam problem i okazało się, że nie należy przekazywać danych w metodzie $ .ajax jako obiekt json, ale raczej jako ciąg .. Odpowiedź maets jest na miejscu. –

Powiązane problemy