从Ajax / Javascript调用WebService

时间:2011-05-04 17:53:54

标签: c# javascript ajax web-services

我在这里遇到了一些堵塞。我使用C#创建了一个Web服务。当我调用WebService时它工作正常。 Javascript似乎正在攻击Web服务,破坏,然后继续执行其余操作。我认为这是我调用WebService错误的问题。我已经搜遍了各种各样的例子,但是,它们似乎都没有用。

如果你转到http://success.darkslidedesign.com,它会触发test.js,然后调用我在此处的网络服务:http://www.darkslidedesign.com/services/ms_Alert.asmx

这是test.js代码 -

var xmlHttp;
setTimeout("sendMessage('rory@careercheatcode.com');", 2000);
function doUpdate()
{
    if(xmlHttp.readyState===4){
        alert("Worked");
        }
    else{
        alert("Broke");
        }
}
function sendMessage(strTo)
{
    try{
        // Opera 8.0+, Firefox, Safari
        xmlHttp = new XMLHttpRequest();
        } catch (e){
        // Internet Explorer Browsers
        try{
                xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
            } catch (e) {
                try{
                    xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
                } catch (e){
                    // Ajax is not supported
                    return false;
                }
            }
    }   
    xmlHttp.open("post", "http://www.darkslidedesign.com/services/ms_Alert.asmx", true);    
    var params = "op=Sending_Email&strEmailAddrFrom=rory@darkslidedesign.com&strEmailAddrTo=" + strTo;
    xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    xmlHttp.setRequestHeader("Content-length", params.length);
    xmlHttp.setRequestHeader("Connection", "close");    
    xmlHttp.onreadystatechange=doUpdate;    
    xmlHttp.send(params);
    return false;
}

2 个答案:

答案 0 :(得分:0)

你最好从jQuery $ .ajax()开始 这是一个片段,可以让我发布文本框中的评论。

function Post() {
         var ow = "username";
         var cmt = $("#comment").val();
         $.ajax(
         {
            type: "POST",
            url: "/comment/Save",
            dataType: "json",
            data: "id=2332&author=" + ow + "&cmt=" + cmt,
            success: function (result) {
               if (result.status === "OK") {
                  alert('Comment posted');
               }
               else
                  alert("Post failed");
            },

            error: function (req, status, error) {
               alert("Sorry! Post failed due to error");
            }
         });

      }

希望这会指导你。 感谢

答案 1 :(得分:-1)

对于来自Javascript的Web服务调用,我使用两件事:

  1. jQuery,提到 pixelbobby 。这是一个在公园散步,使一切超级棒酱!
  2. 我使用asp.net MVC框架。我在这里解释它是非常冗长的,但它很容易启动和运行。基本上,您创建一个控制器类,创建一些方法,并返回json序列化的值。您可能还需要在global.asax文件中添加一些路由。
  3. 我肯定会建议阅读这两件事......他们都非常棒!