计算机毕业设计 毕业设计,计算机毕业设计,ASP.NET毕业设计,课程设计,大网站,信誉高,售后完善,本站作品全部包修改,包远程调试,包辅导讲解,包答辩。
您现在的位置: 做设计网 >> 常见技术问题
常见技术问题

JQuery跨域调用webservice问题-.NET技术/ASP.NET

做设计网 www.dosj.net  更新时间:2016/3/16 21:06:08
页面JS代码如下: 方法一: $.getJSON( "http://ip地址/chatService/chatService.asmx/userLogin?jsoncallback=?", {userId:"'"+$("#userId").val()+"'", serverId:"'"+$("#serverId").val()+"'", date:"'"+new Date()+"'"}, function(json) { if(json.length > 0) { alert(json); } } ); 方法二: $.ajax({ async: false, type: "POST", contentType:"application/json;utf-8", url: "http://ip地址/chatService/chatService.asmx/userLogin?callback=?", data: "{userId:'"+$("#userId").val()+"', serverId:'"+$("#serverId").val()+"', date:'"+ new Date() +"'}", datatype:"json", success: function(json){ if(json != "") { alert(json); } } });

C# code
web service方法 已经包含了[System.Web.Script.Services.ScriptService] [WebMethod] public void userLogin(string userId, string serverId, string date) { DBManager db = new DBManager("COM"); SqlParameter[] p = new SqlParameter[4]; p[0] = new SqlParameter("@userId", SqlDbType.Int, 0); p[0].Direction = ParameterDirection.Input; p[0].Value = userId; p[1] = new SqlParameter("@serverId", SqlDbType.Int, 0); p[1].Direction = ParameterDirection.Input; p[1].Value = serverId; p[2] = new SqlParameter("@date", SqlDbType.DateTime, 0); p[2].Direction = ParameterDirection.Input; p[2].Value = date; p[3] = new SqlParameter("@returns", SqlDbType.Int, 0); p[3].Direction = ParameterDirection.ReturnValue; int sysId = db.ExeProc("ap_webUserLog", p); string callback = HttpContext.Current.Request["jsoncallback"]; string retV = ""; retV += "({state:" + sysId + ", msg:'成功建立连接'})"; HttpResponse response = HttpContext.Current.Response; response.Write(callback + retV); response.End(); }

现在的问题是:
用方法一,则整个getJSON执行不到内部
用方法二,jquery库文件中j.open(G,M.URL, async)提示没有权限。
跨域问题网上也看了,搞了下还是没明白。故求教。
------回答---------

------其他回答(20分)---------

你看下是否 那个webservice 不支持 http get 请求
------其他回答(5分)---------

帮你看了2方法
  $.ajax({
  dataType: "jsonp",
  jsonp: 'jsoncallback',
  url: "http://ip地址/chatService/chatService.asmx/userLogin?callback=?",
  data: '_Method=GET&_JSON=' + "{userId:'"+$("#userId").val()+"', serverId:'"+$("#serverId").val()+"', date:'"+ new Date() +"'}",
  success: function(json){
  if(json != "")
  {
  alert(json);
  }
  }
  });
------其他回答(20分)---------

看webservie所在项目的配置文件中 是否有
<add name="HttpGet"/>
也可通过浏览器访问webservice 得知
------其他回答(10分)---------

改成这个json看看{userId:$("#userId").val(), serverId:$("#serverId").val(), date:new Date()}
------其他回答(5分)---------

{userId:"'"+$("#userId").val()+"'", serverId:"'"+$("#serverId").val()+"'", date:"'"+new Date()+"'"},
    
=》
{userId:$("#userId").val(), serverId:$("#serverId").val(), date:new Date()},
将引号去掉试下
  

 

相关成品
相关知识
  • 在线咨询
  • QQ:254846639
  • QQ:254846639
  • 技术支持
  • 售后服务