2011-12-05 87 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