使用WebServiceHost返回json

时间:2014-05-28 08:34:38

标签: c# .net web-services jsonp

一个月前,我做了一个示例项目,该项目有一个返回JSON响应的Web服务。这是服务器来源:

[ServiceContract]
public interface IWebService
{
    [OperationContract]
    [WebInvoke(ResponseFormat = WebMessageFormat.Json, UriTemplate = "getData?callback={callback}&timestamp={timestamp}", Method = "GET")]
    Stream getData(string callback, long timestamp);
}



public class WebService : IWebService
{
    public Stream getData(string callback, long timestamp)
    {
        string response = APIManager.instance.getPrediction(timestamp);
        StringBuilder sb = new StringBuilder();
        sb.Append(callback + "(");
        sb.Append(response); // indentation is just for ease of reading while testing
        sb.Append(");");
        return new MemoryStream(Encoding.UTF8.GetBytes(sb.ToString()));
    }
}

所以我在Javascript中的客户端能够解析JSON:

function get_data_server(){
var theUrl = "**server_ip**/getData";
console.log("Consulta");
$.ajax({
    url: theUrl,
    dataType: 'jsonp',
    success: function(data){
        console.log("Success");
    },
});
}

当我直接从浏览器访问它时,它会正确返回json。 javacript也运作良好。

当我尝试在另一个项目中重现相同的行为时,会出现

我的问题。我做(好吧,我认为我这样做)但是当我从浏览器调用webservice时,它只是下载一个带有Json响应的文件。我究竟做错了什么?我想我在两个项目中也是这样做的......这看起来很简单,这让我很生气。

任何其他解决问题的方法也会受到赞赏。

0 个答案:

没有答案