gpt4 book ai didi

java - Sencha touch 使用 Jersey 创建更新删除

转载 作者:行者123 更新时间:2023-12-01 14:55:06 25 4
gpt4 key购买 nike

我是 sencha touch 的新手。我需要在 jersey java 中创建、删除、更新成员记录。这是我的代码

view.js

    Ext.define('bluebutton.view.BlueButton.testing', {
extend: 'Ext.form.Panel',
xtype: 'testing',
requires: [

'bluebutton.view.BlueButton.TransactionList',
'bluebutton.view.BlueButton.MemberPopUp',
'bluebutton.view.BlueButton.MemberDetail',
'bluebutton.store.BlueButton.MemberList',

],
config: {
id:'register',
items :[

{
xtype: 'textfield',
name: 'name',
label: 'Name'
},
{
xtype: 'emailfield',
name: 'email',
label: 'Email'
},

{
xtype: 'button',
text: 'Send',
handler: function(button) {
var form = Ext.getCmp('register');
values = form.getValues();



var myStore= new Ext.data.Store({
model: 'bluebutton.model.BlueButton.MemberList'
});

var newModel = Ext.ModelMgr.create({ 'memberId': 1,
'name': 2,
'imgUrl': 3
}, 'bluebutton.model.BlueButton.MemberList');

myStore.add(newModel);

myStore.sync();


}
}


],


}

});

Model.js

Ext.define('bluebutton.model.BlueButton.MemberList', {
extend: 'Ext.data.Model',
config: {
idProperty: 'memberModel',
fields: [
{ name: 'memberId' },
{ name: 'name' },
{ name: 'imgUrl' },
{ name: 'age' },
{ name: 'address' },
{ name: 'pointAvalaible' },
{ name: 'lastVisited' },
],


proxy: {
type: 'ajax',
actionMethods: {
create : 'POST',
read : 'POST', // by default GET
update : 'POST',
destroy: 'POST'
},
url: 'http://localhost:8080/RESTFulExample/rest/json/metallica/testingj'
},


}

});

Store.js

Ext.define('bluebutton.store.BlueButton.MemberList', {
extend: 'Ext.data.Store',
requires: [
'bluebutton.model.BlueButton.MemberList'
],

config: {
grouper: {
groupFn: function (record) {
return record.get('name')[0];
}
},


model :'bluebutton.model.BlueButton.MemberList',
storeId :'memberStore',
autoLoad:false,
pageSize: 5,
clearOnPageLoad: false,

data: [


]
}
});

Jersey.java

     @POST
@Path("/testingj")
// @Consumes("application/x-www-form-urlencoded")
@Consumes(MediaType.APPLICATION_JSON)
public Response too(MultivaluedMap<String, String> form) {
return Response.status(201).entity(form).build();
}

但我不断收到此错误

XMLHttpRequest cannot load localhost:8080/RESTFulExample/rest/json/metallica/testingj?_dc=1358408853016. 
Origin localhost is not allowed by Access-Control-Allow-Origin.

请指导我解决方案。

最佳答案

您收到此响应是因为浏览器对跨源请求的安全限制,这意味着您只能从 javascript 调用同一域中的那些 url。由于您的服务在 8080 post 上运行,因此浏览器会考虑它来自其他域。

有多种方法可以进行跨域请求,您应该阅读其中的内容:

  1. JsonP
  2. 在服务器上启用 CORS

但是,由于移动设备的安全限制与桌面设备的浏览器限制不同,因此即使在浏览器中不起作用,同样的事情也可能在移动设备上起作用。有关更多详细信息,请查看:Loading store data with rest proxy from server in Sencha Touch 2

对于您的情况,我建议您向您的服务添加 JsonP 支持并使用 JsonP 代理而不是 AJAX 和 REST 代理。

关于java - Sencha touch 使用 Jersey 创建更新删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14374388/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com