$ .ajax响应为空

时间:2011-12-28 04:28:09

标签: jquery asynchronous

我已经看到其他相关问题,但无法找到与我的问题完全匹配的问题。尝试使用$ .ajax从worldweatheronline.com获取JSON并继续获得空响应。然而,在Fiddler中,我每次都看到一个正确的响应,仅在浏览器中,它似乎是空的(使用Firebug和警告语句查找)。使用.ajax方法,因为我想在响应可用时解析JSON。

以下是代码段,原始请求和原始响应。

            var jsonxhr = $.ajax({
            url: 'http://free.worldweatheronline.com/feed/weather.ashx?q=55122&format=json&num_of_days=5&key=<somekey>',
            type: 'GET',
            dataType: 'jsonp',
            success: function (json) {
                alert('request success');
            },
            error: function (xhr, status) {
                alert('request error');
            },
            complete: function (xhr, status) {
                //alert('request complete');
                try {
                    var parsedJson = $.parseJSON(jsonxhr.responseText);
                    //alert('success parsing');
                    alert('test' + jsonxhr.responseText + 'test');
                    alert('headers ' + jsonxhr.getAllResponseHeaders());
                    //alert(parsedJson.data.weather.tempMaxF.toString());
                }
                catch (e) {
                    alert("error parsing");
                }
            }
        });
  

原始请求

获取http://free.worldweatheronline.com/feed/weather.ashx?q=55122&format=json&num_of_days=5&key=somekey HTTP / 1.1 接受: / 接受语言:en-US Accept-Encoding:gzip,deflate User-Agent:Mozilla / 4.0(兼容; MSIE 7.0; Windows NT 6.1; Trident / 5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0 ;. NET4.0C; .NET4.0E; Tablet PC 2.0) 连接:保持活力 主持人:free.worldweatheronline.com

  

原始回复

HTTP / 1.1 200好的 缓存控制:私有 Content-Type:application / json;字符集= utf-8的 服务器:Microsoft-IIS / 7.5 X-AspNet-版本:2.0.50727 X-Powered-By:ASP.NET 日期:2011年12月28日星期三04:20:46 GMT 内容长度:2712

{“data”:{“current_condition”:[{“cloudcover”:“100”,“湿度”:“50”,“observation_time”:“03:50 AM”,“precipMM”:“0.0”, “压力”:“1017”,“temp_C”:“ - 3”,“temp_F”:“26”,“visibility”:“16”,“weatherCode”:“122”,“weatherDesc”:[{“value” :“阴天”},“weatherIconUrl”:[{“value”:“http://www.worldweatheronline.com/images/wsymbols01_png_64/wsymbol_0004_black_low_cloud.png”}],“winddir16Point”:“N”,“winddirDegree” :“10”,“windspeedKmph”:“11”,“windspeedMiles”:“7”}],“请求”:[{“查询”:“55122”,“类型”:“邮编”}],“天气” :[{“date”:“2011-12-27”,“precipMM”:“0.0”,“tempMaxC”:“2”,“tempMaxF”:“35”,“tempMinC”:“ - 4”,“tempMinF “:”24“,”weatherCode“:”113“,”weatherDesc“:[{”value“:”Sunny“}],”weatherIconUrl“:[{”value“:”http://www.worldweatheronline.com /images/wsymbols01_png_64/wsymbol_0001_sunny.png“}],”winddir16Point“:”NNW“,”winddirDegree“:”343“,”winddirection“:”NNW“,”windspeedKmph“:”28“,”windspeedMiles“:”18 “},{”date“:”2011-12-2 8“,”precipMM“:”0.0“,”tempMaxC“:”2“,”tempMaxF“:”36“,”tempMinC“:” - 6“,”tempMinF“:”22“,”weatherCode“:”113 “,”weatherDesc“:[{”value“:”Sunny“}],”weatherIconUrl“:[{”value“:”http://www.worldweatheronline.com/images/wsymbols01_png_64/wsymbol_0001_sunny.png“}], “winddir16Point”:“SW”,“winddirDegree”:“220”,“winddirection”:“SW”,“windspeedKmph”:“17”,“windspeedMiles”:“11”},{“date”:“2011-12 -29“,”precipMM“:”0.3“,”tempMaxC“:”4“,”tempMaxF“:”39“,”tempMinC“:” - 1“,”tempMinF“:”30“,”weatherCode“:” 116“,”weatherDesc“:[{”value“:”Partly Cloudy“}],”weatherIconUrl“:[{”value“:”http://www.worldweatheronline.com/images/wsymbols01_png_64/wsymbol_0002_sunny_intervals.png“} ],“winddir16Point”:“WSW”,“winddirDegree”:“257”,“winddirection”:“WSW”,“windspeedKmph”:“20”,“windspeedMiles”:“13”},{“date”:“2011 -12-30“,”precipMM“:”0.3“,”tempMaxC“:”1“,”tempMaxF“:”35“,”tempMinC“:” - 1“,”tempMinF“:”30“,”weatherCode“ :“119”,“weatherDesc”:[{“value”:“Clo udy“}],”weatherIconUrl“:[{”value“:”http://www.worldweatheronline.com/images/wsymbols01_png_64/wsymbol_0003_white_cloud.png“}],”winddir16Point“:”SW“,”winddirDegree“:” 228“,”winddirection“:”SW“,”windspeedKmph“:”18“,”windspeedMiles“:”11“},{”date“:”2011-12-31“,”precipMM“:”0.7“,” tempMaxC“:”4“,”tempMaxF“:”39“,”tempMinC“:”0“,”tempMinF“:”32“,”weatherCode“:”122“,”weatherDesc“:[{”value“:”阴天“}],”weatherIconUrl“:[{”value“:”http://www.worldweatheronline.com/images/wsymbols01_png_64/wsymbol_0004_black_low_cloud.png“}],”winddir16Point“:”W“,”winddirDegree“:” 268“,”winddirection“:”W“,”windspeedKmph“:”21“,”windspeedMiles“:”13“}]}}

1 个答案:

答案 0 :(得分:2)

我认为问题是jsonp不是真正的AJAX。因此,xhr对象没有您希望在真正的AJAX调用中看到的所有内容。您应该使用传递给success回调的数据。