在项目中做js与webservice通信部分,
(详见我的另一篇博文:《js 无参数、有参数的webservice通信方法 XMLHttpRequest和 $.ajax方式汇总及返回值为json问题》
https://my.oschina.net/u/3669041/blog/1531498)
写的过程中,发现webservice的返回的字符串中包含XML头,因此无法被js自动识别为json对象,因而出现进入error分支或返回值结果不能直接使用的问题。解决方案如下:
[C#]
[WebMethod]
public string GetLayers(string groupTableName,string layerTableName)
{
return mReturnLayersEasyUI(groupTableName, layerTableName);
}
在这里,不能直接使用 {return 字符串}; 的方式,而要改用 Context.Response.Write()直接输出json字符串,这样,js中读取的json字符串可以直接转化为json对象。
修改后代码如下:
[C#]
[WebMethod]
public void GetLayers(string groupTableName,string layerTableName)
{
string result= mReturnLayersEasyUI(groupTableName, layerTableName);
Context.Response.Write(result);
}