Javascript 在extjs存储中使用代理从web api服务获取数据的问题
当我尝试在extjs应用程序中使用Web API服务时,它会给我一个关于无效HTTP状态代码500的错误。谁能告诉我为什么它会给我这个错误。我的商店代码如下:Javascript 在extjs存储中使用代理从web api服务获取数据的问题,javascript,web-services,extjs,Javascript,Web Services,Extjs,当我尝试在extjs应用程序中使用Web API服务时,它会给我一个关于无效HTTP状态代码500的错误。谁能告诉我为什么它会给我这个错误。我的商店代码如下: Ext.define(`Demo.store.Users`, { extend: `Ext.data.Store`, model: `Demo.model.User`, autoLoad: true, proxy: { type: `rest`, url : `http://
Ext.define(`Demo.store.Users`, {
extend: `Ext.data.Store`,
model: `Demo.model.User`,
autoLoad: true,
proxy: {
type: `rest`,
url : `http://localhost:50893/Api/EmployeeService`,
reader: {
type: `json`
}
}
});
错误:
OPTIONS http://localhost:50893/Api/EmployeeService?_dc=1388125117941&page=1&start=0&limit=25 500 (Internal Server Error)
Ext.define.request Connection.js?_dc=1388125117581:358
Ext.define.doRequest Ajax.js?_dc=1388125117534:271
Ext.define.read Server.js?_dc=1388125117566:198
Ext.define.load AbstractStore.js?_dc=1388125117034:869
Base.implement.callParent ext-debug.js:4263
Ext.define.load Store.js?_dc=1388125117503:1552
(anonymous function) ext-debug.js:2085
OPTIONS http://localhost:50893/Api/EmployeeService?_dc=1388125117941&page=1&start=0&limit=25 Invalid HTTP status code 500
Ext.define.request Connection.js?_dc=1388125117581:358
Ext.define.doRequest Ajax.js?_dc=1388125117534:271
Ext.define.read Server.js?_dc=1388125117566:198
Ext.define.load AbstractStore.js?_dc=1388125117034:869
Base.implement.callParent ext-debug.js:4263
Ext.define.load Store.js?_dc=1388125117503:1552
(anonymous function) ext-debug.js:2085
XMLHttpRequest cannot load http://localhost:50893/Api/EmployeeService?_dc=1388125117941&page=1&start=0&limit=25. Invalid HTTP status code 500
提前感谢桑迪也许 默认情况下,商店使用GET方法发出请求,因此参数会在url中传递,请更改商店配置以使用方法POST 在proxy config中放置以下内容:
actionMethods:{
create: 'POST',
read: 'POST',
update: 'POST',
destroy: 'POST'
}
最后我解决了我的问题。。。这是跨域问题,而不是“rest”,我使用“jsonp”作为请求类型。比如:
Ext.define('CLG.store.Employee', {
extend: 'Ext.data.Store',
model: 'CLG.model.Employee',
autoLoad: true,
proxy: {
type: 'jsonp',
url: 'http://localhost:50893/Api/EmployeeService',
reader: {
type: 'json'
}
}
});
只需查看链接:
500响应代码是后端代码上的一个错误尝试独立执行后端代码以验证它是否是问题所在,如果它运行正常,则是您调用后端方法的方式。是的,它工作正常,但当我添加web服务引用时,它会给我此错误。有什么解决办法吗??我如何获得正确的错误信息意味着我可以理解我错在哪里!!!!查找应用程序或应用程序服务器的日志文件。您在哪里部署服务?不,我使用的是自部署。Web服务在MVC应用程序中运行良好,但仅在extjs应用程序中我收到500个错误。不,它不工作。。。。。。。。当代理发送请求时,它通过“选项”方法发送。嘿!!!问题解决最后出现了跨域请求问题。所以我只是将请求类型更改为jsonp,错误消失了…:)。。。谢谢老兄帮我一把!!没问题。把它作为你自己的答案贴出来,这样其他人可以从中受益。但我仍然有一个问题,那就是数据没有显示。。。。正如我之前所说,来自web api的数据以json格式发送,但它没有发送对象名。[{“Id”:2017,“FirstName”:“abc”,“LastName”:“abc”,“Designation”:“Software Engineer”,“Salary”:15000.0},{“Id”:2018,“FirstName”:“xyz”,“LastName”:“xyz”,“Designation”:“Student”,“Salary”:15000.0}]