我正在尝试从外部MySQL数据库中的数据显示列表,并从Sencha Touch App将记录插入到同一数据库中。经过多次混淆,我能够使用以下方式阅读和显示记录:
Ext.define("App.store.Share", {
extend: "Ext.data.Store",
required: "App.model.Share",
config: {
model: "App.model.Share",
proxy: {
type: 'jsonp',
api: {
create: "http://127.0.0.1/submit.php?action=create",
read: "http://127.0.0.1/submit.php?action=read",
update: "http://127.0.0.1/submit.php?action=update",
destroy: "http://127.0.0.1/submit.php?action=delete",
},
reader: {
type: 'json',
root: "ideas",
totalProperty: "total"
},
writer: {
type: 'json',
writeAllFields: true
}
},
pageSize: 3,
autoLoad: true,
autoSync: true
}
});
但是,当我尝试将记录添加到数据库时,我收到错误:
Uncaught Error: [ERROR][Ext.data.proxy.Server#create] JsonP proxies can only be used to read data.
我最初使用的是ajax代理,但我不能使用它,因为整个跨域的恶作剧。所以,如果我不能使用JsonP编写,而且我不能使用ajax,我该怎么办?
感谢您的帮助!
答案 0 :(得分:1)
您可以使用AJAX,但必须在服务器上启用跨域调用。要实现此目的,您必须在响应中添加Access-Control-Allow-Origin
HTML标头,例如:
启用所有域:
Access-Control-Allow-Origin: *
启用域列表:
Access-Control-Allow-Origin: http://mydomain.com:8080 http://foo.otherdomain.com
您可以找到如何配置不同网络服务器here的示例。