调用rest webservice时,ajax调用无法执行

时间:2012-05-04 09:09:48

标签: javascript ajax web-services rest

您好我试图从ajax get请求中调用rest webservice。

以下是我为此尝试的代码。

function callRestService(){
        var xmlhttp;
        if (window.XMLHttpRequest){// code for IE7+, Firefox, Chrome, Opera, Safari
          xmlhttp=new XMLHttpRequest();
        }else{// code for IE6, IE5
          xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
        }
        $.ajax({
                xmlhttp.open("GET","http://mywebservice/test/",false);
                xmlhttp.send();
                alert(xmlhttp.responseText);
        });
    }

运行此代码时出现以下错误/

missing : after property id
[Break On This Error]   

xmlhttp.open("GET","http://mywebservice/test..

/AjaxC...ervice/ (line 30, col 13)

在第一种情况下,我尝试了类似下面的内容

$.ajax({
              type: "GET",
              url: "http://mywebservice/test/",
              cache: false,
              success: function(data){
                    alert(data);
                    //var obj = eval(data);
              },
               error: function (msg, url, line) {
                   alert('error trapped in error: function(msg, url, line)');
                   alert('msg = ' + msg + ', url = ' + url + ', line = ' + line);
               }
        });

并在上面的情况下控制进入错误块,但我没有得到这是什么原因。这就是为什么我尝试了第一个案例。

此代码有任何问题.. ??任何人都可以提供帮助。?

1 个答案:

答案 0 :(得分:0)

你的代码都错了。 假设$.ajax是jQuery ajax调用,那么您的代码应如下所示:

function CallRestService() {
  $.ajax({url:'http://mywebservice/test'}).done(function(data) {
      alert(data);
   })
  );
}

如果您正在使用jquery ajax调用,则无需创建xml http请求。 见:http://api.jquery.com/jQuery.ajax 供参考。

如果你不想使用jQuery:

function callRestService(){
    var xmlhttp;
    if (window.XMLHttpRequest){// code for IE7+, Firefox, Chrome, Opera, Safari
      xmlhttp=new XMLHttpRequest();
    }else{// code for IE6, IE5
      xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
    }

    xmlhttp.open("GET","http://mywebservice/test/",false);
    xmlhttp.send();
    if (xmlhttp.status == "200") {
        alert(xmlhttp.responseText);
    }
}

参考此处:Using XMLHttpRequest

如果您使用的是跨域通话,请参阅此处: jQuery AJAX cross domain