2014-07-26 15 views
0

我想從一個簡單的WCF Web服務調用返回一個布爾值的JavaScript。簡單的JavaScript wcf webservice調用返回null爲成功的結果

我在頁面中有腳本管理器。

如下所示,回調結果總是在OnAssignSuccess javascript方法中返回null。

如果需要,我可以提供web.config。

診斷跟蹤顯示布爾在根中返回,但不是響應的一部分,如下所示。

下面是javascript代碼

function OnAssignBackup() { 
    var employees = document.getElementById("<%=cmbBackup.ClientID%>"); 
    PT.UpdateBackupSupervisor(employees.value, OnAssignSuccess, OnAssignFailed); 
} 

function OnAssignSuccess(result) { 
    alert('Successfully updated your backup supervisor ' + result); 
    // result is null 
} 

這裏是簡單的Web服務

[ServiceContract(Namespace = "")] 
[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)] 
public class PT 
{ 
    [OperationContract] 
    [WebInvoke(ResponseFormat = WebMessageFormat.Json)] 
    public bool UpdateBackupSupervisor(string backupUserGUID) 
    { 
     bool bRet = false; 
    . 
    . 
    . 
     return bRet; 
    } 
} 

下面是診斷跟蹤

<MessageLogTraceRecord> 
<Addressing xmlns="http://schemas.microsoft.com/2004/06/ServiceModel/Management/MessageTrace"> 
<Action>urn:PT/UpdateBackupSupervisorResponse</Action> 
</Addressing> 
<HttpResponse xmlns="http://schemas.microsoft.com/2004/06/ServiceModel/Management/MessageTrace"> 
<StatusCode>OK</StatusCode> 
<WebHeaders> 
<Content-Type>application/json; charset=utf-8</Content-Type> 
</WebHeaders> 
</HttpResponse> 
<root type="object" xmlns=""> 
<d type="boolean">true</d> 
</root> 
</MessageLogTraceRecord> 

回答

0

我通過使用jquery ajax調用它得到它的工作如下。

function OnAssignBackup() { 
    var employees = document.getElementById("<%=cmbBackup.ClientID%>"); 
    $.ajax 
     (
      { 
       type: 'GET', 
       url: '../../Services/PT.svc/UpdateBackupSupervisor', 
       data: { backupUserGUID: employees.value }, 
       success: function (response, status, error) { 
        alert('Successfully Updated Backup Supervisor: ' + status); 
       }, 
       error: function (request, status, error) { 
        alert('Update Backup Supervisor Failed with error: ' + error); 
       } 
      } 
     ); 
} 

我在web.config中使用webHttp行爲。