您的位置:首页 > Web前端 > JQuery

jquery实现调用webservice

2013-07-19 18:13 405 查看
1、webservice端

using System;

using System.Collections.Generic;

using System.Web;

using System.Web.Services;

using System.Configuration;

using System.Data.SqlClient;

using System.Data;

/// <summary>

///WebService 的摘要说明

/// </summary>

[WebService(Namespace = "http://tempuri.org/")]

[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]

//若要允许使用 ASP.NET AJAX 从脚本中调用此 Web 服务,请取消对下行的注释。

[System.Web.Script.Services.ScriptService]

public class WebService : System.Web.Services.WebService {

public WebService () {

//如果使用设计的组件,请取消注释以下行

//InitializeComponent();

}

[WebMethod]

public string HelloWorld(string userName) {

return "Hello World"+userName;

}

}

红色部分在vs2010中编译会报错,找不到“System.Web.Script”引用。

解决办法:经在网上查阅属于vs2010的一个bug,当编译框架选择为.Net3.5 Framework时,程序却在物理路径C:\Program Files\Reference Assemblies\Microsoft\Framework\v3.0去找System.Web.Extentions.dll这个动态库,所以此时应该将物理路径C:\Program Files\Reference Assemblies\Microsoft\Framework\v3.5中的动态库System.Web.Extentions.dll拷贝到路径C:\Program
Files\Reference Assemblies\Microsoft\Framework\v3.0下面。

2、客户端

<script src="js/jquery.js" type="text/javascript"></script>

<script type="text/javascript">

$(document).ready(function () {

$("#Button1").click(function () {

try {

$.ajax({

type: "POST", //访问WebService使用post方式请求

contentType: "application/json;utf-8", //WebService会返回json类型

url: "http://localhost:8321/WebService.asmx/HelloWorld", //调用WebService的地址和方法名称组合

data: "{userName:'Jodie'}", //这里是要传递的参数,格式为data:"{paraName:paraValue}"

dataType: "json",

success: function (result) {

$("#result").html(result.d);

alert(result.d);

}

})

}

catch (ex) {

alert(ex);

}

})

})

</script>

完成客户端与服务器端的编写后调试发现,在IE中正常,但是在FireFox中死活出不来,这时郁闷了……百思不得其解,最终发现是跨域问题

解决办法:将webservice于客户端发布在同一个根目录下,如图所示

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: