我的ajax很简单,但不起作用

时间:2013-06-22 08:49:10

标签: jquery ajax

我想从表单加载中的weather api中检索一些数据。我也是ajax的新手,我不知道表单加载中的ajax工作。这是我的代码。 谢谢,

<!DOCTYPE html>
<html>
<head>
     <meta name="viewport" content="width=device-width, initial-scale=1">
    <script src="js/jquery-1.7.1.min.js"></script>

    <script type="text/javascript" charset="utf-8">
$(document).ready(function() {
   $.ajax({
        type:"GET"
        , url:"http://api.openweathermap.org/data/2.5/weather?q=London,uk"
        , dataType:"json"
        , success: function(data){

            $('#result').text(data)

        }   
    });
});
</script>
</head>
<body>
 <div id="result"></div>
</body>
</html>

3 个答案:

答案 0 :(得分:3)

由于浏览器为jsonp,您必须使用same origin policy格式。 另请注意,实现error回调有助于调试....如果您使用Chrome,ctrl+shift+J是您的朋友...(请注意,对于jsonp类型的调用,错误回调不是已解雇,但它确实触发了您的原始代码,又称json为dataType)

  $.ajax({
        type:"GET"
        , url:"http://api.openweathermap.org/data/2.5/weather?q=London,uk"
        , dataType:"jsonp"
        , success: function(data){
            $('#result').text(data.name);
        } 
       , error: function(e) {
           alert(e);
       }
    });

工作jsfiddle

答案 1 :(得分:1)

我认为会是

$('#result').text(data + "OKkkkkk");

我不认为通过cross domain AJAX会进行通信,而且您正在获取JSON数据,因此您需要过滤该数据并进行显示。

根据您的需要,您需要一个像

这样的错误块
$.ajax({
    type:"GET"
    , url:"http://api.openweathermap.org/data/2.5/weather?q=London,uk"
    , dataType:"json"
    , success: function(data){

        $('#result').text("data" + "OKkkkkk")

    },
    error : function(){
        alert('Ajax call was failed');
    }   
});

如果ajax调用成功,那么它将转到成功块并将结果数据输入到结果div中,或者如果失败则会在进入错误块时发出警告

答案 2 :(得分:1)

您已将数据放在双引号中,因此它被解释为文本。正确的形式是:

$( '#结果')。文本(数据)