2011-05-18 130 views
1

所以我有一个页面上应该调用一个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; 
} 
+1

你检查使用萤火虫或类似的东西,看看阿贾克斯成功完成? – 2011-05-18 20:32:45

+1

检查成功回调中的变量“j”是否为空或未定义。我想这可能是有可能的,如果有一个JSON解析错误。这将解释为什么你没有看到任何警报,因为在你的if条件中检查'j.d'会导致你的回调函数崩溃。 – DarthJDG 2011-05-18 20:40:02

回答

3

window.location是不是你调用一个函数,它是你设置一个属性:

if (j.d == 1) { 
    window.location = 'http://www.msn.com'; 
} 

+0

啊,你是如此的正确。我把它作为一个属性,但然后没有注册的web服务,所以我把它改成一个功能,认为我错了,忘了然后注册web服务,忘了改回它!谢谢 – Jordan 2011-05-18 20:48:29

2

我相信那是因为你在呼唤window.location(),而不是设置window.location.href = 'someUrl'

1
$("#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(':('); 
     } 

    }); 

});