0

我想在表单加载中从天气 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>
4

3 回答 3

3

由于浏览器的同源策略,您必须使用jsonp格式。另请注意,回调的实现有助于调试....如果您使用 Chrome,ctrl+shift+J是您的朋友...(请注意,对于 jsonp 类型的调用,错误回调不会被触发,但确实如此使用您的原始代码触发,也就是 json 作为数据类型)error

  $.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

于 2013-06-22T09:00:09.650 回答
1

我想会是

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

而且我不认为通过cross domainAJAX 会进行通信,并且您正在获取 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,或者如果它失败,那么它会在进入错误块时发出警报

于 2013-06-22T08:51:00.583 回答
1

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

$('#result').text(数据)

于 2013-06-22T08:56:34.493 回答