2011-12-05 86 views
1

我知道很多次這個問題已經發布在這裏。但我無法爲我的問題找到解決方案。Web服務不返回JSON

我已經創建了一個Web服務,並將方法返回類型設置爲JSON,但方法仍返回XML。

這裏是我的方法:

[WebMethod(Description = "LoginMethod")] 
[ScriptMethod(ResponseFormat = ResponseFormat.Json)] 
public string doLogin(string UserName, string Password) 
{ 
     LoginSuccess objSuccess = new LoginSuccess(); 
     UserInfo objInfo = new UserInfo(); 
     objSuccess.success = "true"; 
     objInfo.Token = "token"; 
     objInfo.type = "usertype"; 
     objInfo.username = "username"; 
     objInfo.userid = "userid"; 
     objSuccess.response = objInfo; 
     clsJSON objJSON = new clsJSON(); 
     loginResponse = objJSON.ToJSON(objSuccess); 
     return loginResponse; 
} 

這裏是我的迴應:

<string>{"success":"true","response":{"Token":"token","username":"username","userid":"userid","type":"usertype"}}</string> 

但我想這是:

{"success":"true","response":{"Token":"token","username":"username","userid":"userid","type":"usertype"}} 

我打電話從該頁面此方法, Web服務給我們測試方法。請求方法是HttpPost。

請爲此建議我。

+0

指定您在標籤中使用哪種語言和框架永遠不是一個壞主意。你也應該包含你的javascript代碼,因爲它是你問題的一部分。 – flesk

+0

我正在使用.net 4.0 – Anvesh

回答

2

問題是您沒有指定或使用錯誤的接受請求標頭。它應該是application/json。如果沒有相關的JavaScript代碼用於在您的問題中提取數據,則無法說出究竟應該放在哪裏。

+0

感謝您的回覆,我正在使用.net 4.0,並且使用.net 4.0提供的測試頁來測試Web服務。在您回覆之後,我檢查請求類型是application/xml,現在我想將請求類型更改爲application/json。是否有可能在該頁面更改請求類型 – Anvesh

+0

@Anvesh:是的,這是可能的。你怎麼做取決於你是使用JavaScript框架還是自己爲不同的瀏覽器創建XMLHttpRequest對象。 – flesk

+0

通過使用javascript我設置應用程序/ json和我在json得到的響應,但如果我從那個網頁測試哪個.net給測試web服務方法它總是發送應用程序/ xml請求我想要將其更改爲應用程序/ json。有沒有辦法改變那個頁面的請求類型? B'caz我無法找到該頁面的任何代碼。 – Anvesh