我正在向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内容中形成了响应体中的文件。但它仍然会失败功能并给予超时。 特此附上截图
答案 0 :(得分:2)
您的回复看起来不像jsonp。 jsonp的意思是它以javascript的形式执行,并且响应必须将数据包装在函数调用中。尝试发送此回复:
callback([{Hashtag: "Hello",Value: 1}, ... ]);
我不确定extjs如何处理jsonp请求。通常,回调函数的名称是可配置的,js框架会为您处理此问题。也许你需要将?callback=?
添加到你的网址,或者在你的ext2 jsonp请求中指定一个回调名称。也许ext2已经将一个回调参数传递给你的服务器,你就忽略了它。