【发布时间】:2012-02-10 09:43:59
【问题描述】:
看来我无法使用 Ext.Ajax.request 进行跨域 ajax 调用。看起来 ScriptTag: True 没有任何效果。
这是我的代码:
{
xtype: 'button',
text: 'Search',
ui: 'confirm',
handler: function() {
var query = Ext.getCmp("textquery").getValue();
Ext.Ajax.request({
url: 'http://example.com/?search='+query,
dataType: 'jsonp',
jsonp: 'jsonp_callback',
scriptTag: true,
success: function(e) {
var obj = Ext.decode(e.responseText);
var msg = obj;
var html = tpl.apply(msg);
resultPanel.update(html);
}
});
}
控制台日志告诉我:
XMLHttpRequest cannot load http://example.com/?search=test&_dc=1326551713063. Origin http://myapp.lo is not allowed by Access-Control-Allow-Origin.
我用 jquery 做了同样的事情并且它有效,但我必须使用 sencha touch。
var formData = $("#callAjaxForm").serialize();
$.ajax({
url:"http://example.com/leksikonapi/",
dataType: 'jsonp',
jsonp: 'jsonp_callback',
data: formData,
success: onSuccess,
error: onError
});
我看不出两者之间有什么不同。
【问题讨论】:
标签: ajax cross-domain sencha-touch jsonp