2010-03-20 16 views
6

Basit olacağını düşündüğüm bir şeyi yapmaya çalışıyorum. JQuery aracılığıyla gönderebileceğim bir WCF servisi oluşturmam gerekiyor. Sonra JQuery üzerinden bir ASP.NET sayfasından bu işlemi erişmeye çalıştığınızdaWCF - "Beklenmeyen karakterle karşılaşıldı" 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"; 
    } 
} 

: Ben şöyle tanımlanır benim WCF hizmetinde bir operasyon var. Bu işlemi erişmek için My JQuery kod aşağıdaki gibi görünür:

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); 
    } 
    }); 
} 

Bu senaryoyu yürütmek

, hata işleyicisi devreye girer. İçinde, şu hata mesajını alıyorum:

"Beklenmeyen karakterle karşılaşma 'c'."

Bu mesaj uzun bir yığın izi ile birlikte gelir. Sorum şu: ne yapıyorum yanlış? Bu gibi (How to post an array of complex objects with JSON, jQuery to ASP.NET MVC Controller?) herhangi bir şans olmadan başka mesajlar aldım. Bu temel etkileşimi nasıl çalışırım?

Teşekkür ederiz!

+1

ben yanlış parametreleri geçiyoruz düşünüyorum. Aşağıdaki sayfaya bakınız: [ASP.NET AJAX ile jQuery kullanırken kaçınmak için 3 hata] (http://encosia.com/2008/06/05/3-mistakes-to-avoid-when-using-jquery -with-aspnet-ajax /) – Giorgi

+0

Bu site şu anda bana ulaşılamıyor - ne dedi? –

cevap

3

Sanırım json verilerini isteğinize göre dizginlemek zorundasınız. Daha fazla bilgi here. Gelen yanıt verilerini de ayrıştırmak isteyebilirsiniz, çünkü karşılığında dizilenir. Görev için uygun bir ortak kütüphane here bulunabilir.

Örn .: veriler: '{mesajı: "mesaj", aciliyet: "1"}',

+0

Ben de aynı sorun vardı ve veri bir json nesnesi olarak bir json nesnesi olarak $ .ajax yöntemi geçmemelisiniz çıkıyor çıkıyor .. maets'ın cevabı spot üzerindedir. –