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

新建WebService供JQuery调用及用js判断是否要调用服务器的submit

2016-01-20 17:58 801 查看
今天在项目中新建了一个WebService,怎么也调用不起来。但在家里的电脑却是正常调用。家里的电脑使用jquery1.7.1,公司中的是1.10.2.也许是这个差别吧。细节不清楚。记录下后来是怎么处理的。

服务器的代码如下:

[WebMethod]
public void AttributeIsAllowUpdate(string AttributeID)
{
int par = Convert.ToInt32(AttributeID);
string result = JHDO2O.DAL.Mall.ProductionAttribute.IsAllowUpdate(par).ToString();
var rs= new {State=result};
HttpContext.Current.Response.Write(System.Web.Helpers.Json.Encode(rs));
HttpContext.Current.Response.End();
}里面用到的System.Web.Helpers.Json.Encode这个是公司中引用的dll,实际可以用其它的代替。
Ajax调用如下:

$.ajax({
type:'post',
//contentType: 'application/json',
url: '../../tools/mall_ajax.asmx/AttributeIsAllowUpdate',
data: { "AttributeID": "<%=hidrId.Value%>" },
dataType: 'json',
error: function (xmlhttprequest, state, msg) {
$.dialog.alert("读取属性编码出错!", function () {});
},
success: function (result, state, msg) {
AttributeIsAllowUpdate = result.State;
}
});刚开始写了contentType: 'application/json'这一句服务器怎么都报错说是不支持。后来查看文档。发现版本的原因。jquery改成了另一种。然后注销,使用默认的值。这个没有问题。需要注意到的是data: { "AttributeID": "<%=hidrId.Value%>" }, 这个中的{}号。它是没有在引用中的。刚开始以为是json数据都有大括号,于是都把大括号写入数据。结果总是通不过。后来改成这种格式才允许通过。注意它的type一定要post才能执行。因为Web服务都是需要post的。
附一个从客户端按钮来决定是否调用后台服务的submit.

<asp:Button ID="btnSubmit" runat="server" Text="提交保存" CssClass="btn" OnClientClick="return btnconfirm();" OnClick="btnSubmit_Click" />js代码
function btnconfirm(){
if (AttributeIsAllowUpdate == "False") {
$.dialog.tips("属性已被引用,不允许更改哦!", 2, "32X32/i.png", function () {
return true;
});
return false;
}
else {
return true;
}
};

代码比较简单,一看就懂。这里不叙述了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: