2012-03-03 104 views
0

我有一些WCF服務返回JSON字符串。 它的網址,http://localhost:50377/DailyNote/AggregationService/PnlByBookName/ {} DailyPnl /書?BOOKNAME = {}油& buisinessDay = {} 03/02/2011無法從jQuery的WCF服務返回jSon字符串

現在我想使用jQuery在HTML此字符串。 JavaScript的是:

var Type; var Url; var Data; var ContentType; var DataType; var ProcessData; var method; 
function CallService() { 
    $.ajax({     
     type: Type, 
     url: Url,      
     data: "bookName=Oil&buisinessDay=02032012", 
     contentType: ContentType, 
     dataType: DataType, 
     processdata: ProcessData, 
     success: function (msg) { 
      alert("service success"); 
      ServiceSucceeded(msg); 
     }, 
     error: ServiceFailed 
    });   
} 

function ServiceFailed(xhr) { 
    alert("service fail: " + xhr.status + " : " + xhr.statusText); 
    alert(xhr.responseText); 
    if (xhr.responseText) { 
     var err = xhr.responseText;if (err) error(err); else error({ Message: "Unknown  server error." }); 
    } return; 
} 

function ServiceSucceeded(result) { 
    alert("Service Success"); 
    if (DataType == "jsonp") { 
     resultObject = result.GetPnlByBookHierarchy; 
     alert(resultObject); 
    } 
} 

function GetData() { 
    Type = "GET"; 
    Url = "http://localhost:50377/DailyNote/AggregationService/PnlByBookName/DailyPnl/Book?"; 
    DataType = "jsonp"; 
    ProcessData = true; 
    method = "PnlByBookName"; 
    ContentType = "application/javascript"; 
    CallService(); 
} 

$(document).ready(function() {    
    GetData();    
}); 

在執行時,警報形成失敗觸發與xhr.status 200 & xhr.statusText作爲成功的服務。 我可以致電該服務,但無法收到jSon回來。

+0

嘗試使用{「BOOKNAME」:「油」,「buisinessDay」:「02/03/2012 「}而不是」bookName = Oil&buisinessDay = 02032012「....將數據傳遞給ajax請求時。 – Engineer 2012-03-03 13:44:42

+0

您是否檢查過返回的JSON實際上是否有效? – 2012-03-03 13:46:53

+0

是的,我嘗試過{{bookName「:」Oil「,」buisinessDay「:」02/03/2012「}但這並不奏效。 – user1246841 2012-03-03 14:19:01

回答

0

如果端口或主機不是同一個域中的服務必須返回JSONP,或者您需要代理請求

+0

他們都在同一個港口。 – user1246841 2012-03-05 05:44:15

+0

在這種情況下,你不希望jsonp數據類型,只是json – charlietfl 2012-03-05 13:27:36