function program(Container) {
$.ajax(
{
url: "/WebService.asmx/Program",
type: "POST",
dataType: "json",
contentType: "application/json",
cache: false,
timeout: 5000,
success: function(json) {
debugger;
alert(json.result); // 获取不到值
}
,
beforeSend: function(x) {
}
,
error: function(xhr) {
alert(xhr.responseText);
}
,
complete: function(x) {
$("#" + Container).append("<div id='clock_time' style='width:100px; _width:80px;font-size:14px; color:#FFF; float:left; text-align:left; margin-right:5px;'></div>");
}
}
);
}
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
[WebMethod)]//设置EnableSession属性为true,启用Session
public string Program()
{ string result = "aaa";
return "{result:\"" + result + "\"}";
}
------解决方案--------------------
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
[WebMethod)]//设置EnableSession属性为true,启用Session
public static string Program()
{ string result = "aaa";
return "{result:\"" + result + "\"}";
} 调试一下,看能不能进到webservice的方法中
------解决方案--------------------
static不用加吧
用"/WebService.asmx?op=Program"
这个地址访问一下,看看webservice期望的request是咋样的
还有,lz的webservice返回的是json,试试定义一个Result的类,里面包含一个result的getter-setter,然后webservice返回这个类的实例。
类似下面这样
using System.Collections.Generic;
using System.Web.Script.Services;
using System.Web.Services;
namespace JsonServiceSample
{
public class Result
{
public string result { get; set; }
}
[WebService(Namespace = "", Description = "For Donma Test")]
[System.ComponentModel.ToolboxItem(false)]
[ScriptService]
public class Service1 : WebService
{
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
[WebMethod]
public Result Program()
{
string resultStr = "aaa";
return (new Result { result = resultStr });
}
}
}
如果Webservice直接返回String的话在客户端,也就是jquery 这边应该拿到的是一个string
所以用json.result取不到值,你直接alert(json)的话应该可以看到这串字符串,类似{result:"aaa"}这样的
如果是这样的话那就用eval("("+json+")");来转一下
------解决方案--------------------
不好意思,没看明白
什么东西改成一般应用程序?(Webservices改成一般应用程序?ajax改成一般应用程序?)
一般应用程序是指啥?(WinForm?WebApplication?)
显示终止线程是指啥?(ThreadAbordException?)
------解决方案--------------------