所以我有一个页面上应该调用一个asp.net web服务的以下功能,它似乎这样做,但没有发生在页面上。下面是低于该函数的WebServicejquery Ajax没有响应?
$("#BlogSelectList li a").click(function() {
var str = ($(this).attr("href")).slice(1, 36)
$.ajax({
contentType: "application/json; charset=utf-8",
url: '../ws/WebServices.asmx/SetActiveBlog',
data: '{ActiveBlogID: "' + str + '"}',
dataType: 'json',
type: "post",
success: function (j) {
if (j.d == 1) {
window.location('http://www.msn.com');
}
else {
window.location('http://www.msn2.com');
}
alert('heyhi')
}, error: function (j) {
alert(':(')
}
});
});
这里是web服务,我知道这是执行,因为它运行的是与成功制作日志条目存储过程“SSSS”但页面字面上什么都不做当锚点被点击时,它不会重定向页面,它不会做任何警报,什么也不做。
[WebMethod(Description = "Sets the ActiveBlog.")]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public bool SetActiveBlog(string ActiveBlogID)
{
DbaseExecSpWithReturnValue Sproc = new DbaseExecSpWithReturnValue();
Sproc.SetSp("sp_CheckUsernameAvailable");
Sproc.AddParam(1);
Sproc.AddParam("Username", SqlDbType.Char, "ssss", 20);
int RetVal = Sproc.Execute();
Sproc.Close();
return true;
}
你检查使用萤火虫或类似的东西,看看阿贾克斯成功完成? – 2011-05-18 20:32:45
检查成功回调中的变量“j”是否为空或未定义。我想这可能是有可能的,如果有一个JSON解析错误。这将解释为什么你没有看到任何警报,因为在你的if条件中检查'j.d'会导致你的回调函数崩溃。 – DarthJDG 2011-05-18 20:40:02