我是sencha touch2的初学者。我正在尝试创建一个包含博客视图的应用程序。博客的代码如下。当我启动应用程序时,内容无法加载,给出这些错误。我正在使用wamp for localhost。
XMLHttpRequest cannot load " http://secureclick-media-maynemyltf.netdna-ssl.com/Extensions/rjs/c2.js". Origin< http://localhost> is not allowed by Access-Control-Allow-Origin.
XMLHttpRequest cannot load " http://api.yontoo.com/GetClientData.ashx?key=null&id=47a8564d-d089-4195-9564-72f107ea1c56&loc=http%3A//localhost/GS/&apps=bestvideodownloader,ezLooker,pagerage,buzzdock,toprelatedtopics,twittube". Origin <http://localhost> is not allowed by Access-Control-Allow-Origin.
Ext.define('GS.view.blog',
{
extend:'Ext.navigation.View',
xtype: 'blogpanel',
config:{
title: 'Blog',
iconCls: 'star',
items:
{
xtype:'list',
itemTpl:'{title}',
store:
{
autoLoad: true,
fields:['title','author','content'],
proxy:
{
type:'jsonp',
url: 'https://ajax.googleapis.com/ajax/services/feed/load?v=1.0&q=http://feeds.feedburner.com/SenchaBlog',
reader:
{
type:'json',
rootProperty:'responseData.feed.entries',
}
}
}
}
}
});
答案 0 :(得分:1)
您不是在调用JSONP服务而是调用JSON服务。您可以通过从浏览器调用your URL来检测它,并看到内容不是通过方法调用启动的。
所以你没有绕过跨域保护。
你不能只告诉你希望它在JSONP中回答的服务器:它必须准备好做出这样的答案。
并且您的浏览器不允许您从另一个域访问服务器在json中回答而没有设置标头指定他接受此跨域请求。阅读this。
编辑:
您可以使用JSONP调用此服务:您只需在URL的末尾指定回调即可。
除了这种响应格式,协议还支持a 通过指定a触发的经典JSON-P样式回调 callback参数,它指示API将JSON对象作为传递 指定回调的参数。
来自the documentation的示例:
'https://ajax.googleapis.com/ajax/services/feed/find?v=1.0&q=Official%20Google%20Blogs&callback=processResults'