请求Web服务获取JSON

时间:2013-08-04 17:52:58

标签: javascript ajax json web-services

我需要点击提供JSON对象并使用基本身份验证的Web服务URL。如何在JavaScript中执行相同的操作。我正在使用下面的代码,但浏览器没有任何反应。

<html>
<head>
<title>Hello World</title>
<script>

function send_with_ajax()

    var httpRequest = new XMLHttpRequest();
    httpRequest.open("GET", 'url of service', true);
    httpRequest.setRequestHeader("Content-type", "application/x-www-form-urlencoded");

    httpRequest.setRequestHeader("X-Requested-With", "XMLHttpRequest");
    httpRequest.send();

    httpRequest.onload= function() { 
        if (httpRequest.readyState == 4)
        {
            var _tempRecommendations = httpRequest.responseXML;
            window.alert(httpRequest.response);
            window.alert(httpRequest.responseText);
            window.alert(_tempRecommendations);
        }
    };  
};

</script>
</head>
<body onload="send_with_ajax()"></body>
</html>

3 个答案:

答案 0 :(得分:1)

检查jQuery以执行此操作。这会产生类似

的结果
    $.get("http://yourRestprovider.com/yourResource",function(data){
    //handle your data 
    },"json");

请说明您对基本身份验证的意思,因为我看不到您的代码段中对服务器进行身份验证的方法!

答案 1 :(得分:0)

(你不需要JQuery。)

首先确保内部函数正在运行,因此请尝试将函数设置为onreadystatechange而不是onload

对于身份验证:如果您的域(替换'url of service'的域)与脚本所在的页面具有相同的来源,并且您已经在进行某种存储登录会话cookie的身份验证,你不需要做任何其他事情。

答案 2 :(得分:-1)

您好我正在使用下面的代码:之后它只显示在浏览器上加载。

<html><head>
<title>Hello World</title>
<script src="http://code.jquery.com/jquery-1.4.3.min.js"></script>
<script src="http://code.jquery.com/mobile/1.0a1/jquery.mobile-1.0a1.min.js">
</script>
<script type="text/javascript">

function send_with_ajax()
{

        $.ajax  
        ({  
          type: "GET",  
          url: "https://url with params",  
          dataType: 'json',  
          async: false,  
          username: 'abc',  
          password: 'def',  
          data: '{ "comment" }',  
          success: function (){  
            alert('Success!');   
          }  
        });  
}

</script>
</head>
<body onload="send_with_ajax()"></body>
</html>