javascript的跨域调用

【服务端】

 

[WebService(Namespace = "http://tempuri.org/")]
    [WebServiceBinding(ConformsTo = WsiProfiles.None)]
    [ToolboxItem(false)]
    [System.Web.Script.Services.ScriptService]
    public class Service1 : System.Web.Services.WebService
    {
        [WebMethod]
        public void HelloWorld(string jsonStudent)
        {
            HttpResponse resp = Context.Response;
            string callBack = Context.Request["callback"].ToString();
            resp.Clear();
            resp.ContentEncoding = new UTF8Encoding(false);
            resp.ContentType = "application/json";
            resp.Charset = "utf-8";
            Student stu = JsonSerializer<Student>.Deserialize(jsonStudent);
            resp.Write(callBack+"("+JsonSerializer<Student>.Serialize(stu)+")");
            resp.End();
        }

        [WebMethod]
        public void Hello(string js)
        {
            HttpResponse resp = Context.Response;
            resp.Clear();
            resp.Charset = "utf-8";
            string callBack = Context.Request["callback"].ToString();
            resp.ContentEncoding = new UTF8Encoding(false);
            resp.ContentType = "application/json";
            string callBackFun = callBack + "('"+ js +"')";
            resp.Write(callBackFun);
            resp.End();
        }
    }

【客户端】

一、完整写法:

$.ajax(
      {
        url:"http://localhost:3997/Service1.asmx/HelloWorld",
        data:"jsonStudent={\"id\":\"1\",\"name\":\"董玮\"}",   //最好按照标准写法
        contentType:"application/json",
        type:"post",
        dataType:"jsonp",
        success:function(data)
        {
         alert(data.id+"<===>"+data.name);
        }
      });

二、简化写法:

$.getJSON("http://localhost:3997/Service1.asmx/Hello?callback=?",{"js":"董玮"},
      function(data)
      {
      alert(data);
      },"post");
posted @ 2015-02-11 17:52  Serviceboy  阅读(303)  评论(0编辑  收藏  举报