extjs中的JSONP请求超时

时间:2013-12-27 12:09:27

标签: javascript extjs jsonp

我正在向localhost发送一个jsonp请求以获取json数据。但我得到请求超时。我无法弄清楚超时的原因。 有谁能够帮我?以下是功能

init: function() {
    var me = this;
    //making the jsonp request to fetch data
    console.log("init start");
    Ext.data.JsonP.request({
      url : 'http://localhost/TwitterApp/resources/json/Data.json',
      success: function(response){
      //populating the data in the store
        //console.log("aaaa" + response);
        var store = me.getDataStore();
        store.loadData(response);
        //console.log("on Init" + store);
        me.getStatistics().renderColumnCharts(store);
      },
      failure: function(response){
        console.log(response);
      }
    });
},

这是Data.json文件。它与代码中指定的位置相同

[
{
    Hashtag: "Hello",
    Value: 1
},
{
    Hashtag: "Hi",
    Value: 4
},
{
    Hashtag: "Obama",
    Value: 61
},
{
    Hashtag: "Close",
    Value: 551
},
{
    Hashtag: "MOD",
    Value: 15
},
{
    Hashtag: "winter",
    Value: 51
},
{
    Hashtag: "chadar",
    Value: 71
},
{
    Hashtag: "bottle",
    Value: 17
},
{
    Hashtag: "jaiHo",
    Value: 154
},
{
    Hashtag: "Madhur",
    Value: 144
},
{
    Hashtag: "Plank",
    Value: 142
},
{
    Hashtag: "Gft",
    Value: 1
}
]

我试过检查网络请求。在显示的json内容中形成了响应体中的文件。但它仍然会失败功能并给予超时。 特此附上截图 Response screen shot

1 个答案:

答案 0 :(得分:2)

您的回复看起来不像jsonp。 jsonp的意思是它以javascript的形式执行,并且响应必须将数据包装在函数调用中。尝试发送此回复:

callback([{Hashtag: "Hello",Value: 1}, ... ]);

我不确定extjs如何处理jsonp请求。通常,回调函数的名称是可配置的,js框架会为您处理此问题。也许你需要将?callback=?添加到你的网址,或者在你的ext2 jsonp请求中指定一个回调名称。也许ext2已经将一个回调参数传递给你的服务器,你就忽略了它。