2012-03-03 106 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