有个项目需要用到Ajax实现局部刷新功能,如下图点击被访者资料出来下面的数据网格:
最开始采用ajaxpro实现该功能,本机测试都没有问题,但部署到Windows 2008服务器上IIS时,外部浏览器访问出现错误如下图:Bussiness_ProjectSearchDetailInfo无法识别
没有解决后,同事决定用jquery+ajax+webservice去解决这个问题,但新的错误又出现,还是本机部署访问没有问题,其它机器访问也出现页面错误。
出错前的页面代码:
$.ajax({
type: "POST",
url:"WebService/wbsBLL.asmx/CreateAdvisterInfo",
async:false,
dataType:"xml",
data:{'sgid_ProjectInfo':$("#labprojectinfo").text()},
后面网上找原因,发现jquery传输格式通常用的是json格式,所以传输格式改为json之后部署到服务器上就没有问题了。
改之后(dataType改为json)的页面代码:
$.ajax({
url: "WebService/wbsBLL.asmx/GetProjectAdvisterInfo", //后台webservice里的方法名称
type: "POST",
dataType: "json",
async:false,
contentType: "application/json; charset=utf-8",
data:'{"sgid_ProjectInfo":"'+sgid_ProjectinfoJson+'"}',
【xml与json数据格式的区别】
XML是一种类似于HTML的标记语言
JSON是结构化数据串行化的文本格式。它衍生自Javascript的对象实体
总体来说XML适用更广,比如安全性及服务器端表现优于JSON。但由于JSON本来是JavaScript 的一个安全的子集,所以解析速度和数据传输量更优于XML,JSON在JavaScript中的灵活性与易用性,使得大多数Ajax编程人员都更愿意使用JSON作为Ajax传输数据的方法。