这是我的WCF服务定义用于验证用户的方式:
[OperationContract]
[WebInvoke(Method = "POST", BodyStyle = WebMessageBodyStyle.WrappedRequest, ResponseFormat = WebMessageFormat.Json)]
string validateUser(string username, string password);
它只返回“Validated”或“NotValidated”作为结果。
我的ExtJS代码是:
function loginclick(btn) {
var form = mainPanel.getForm();
if (form.isValid()) {
var userget = Ext.getCmp('txtuser').value;
var passget = Ext.getCmp('txtpass').value;
var myparams = { 'username': userget, 'password': passget };
Ext.Ajax.request({
url: 'http://localhost:52984/ExtJsRestfulService.svc/validateUser',
params: Ext.encode(myparams),
method: 'POST',
headers: this.header || { 'Content-Type': 'application/json;charset=utf-8' },
success: function (response, options) {
var s = response.responseText;
Ext.MessageBox.alert('Success', s);
},
failure: function (response, options) {
Ext.MessageBox.alert('Failed', 'Unable to get');
}
});
}
}
当我点击登录按钮时,我收到错误的请求(400)错误。我的服务不在同一个解决方案中。当我将数据发布到同一解决方案中的aspx表单时,它可以工作。我做错了什么?
答案 0 :(得分:0)
您是否尝试过无编码?
尝试
params: {
'username': userget,
'password': passget
}
为什么你有两次params配置?
你不应该使用Ext.getCmp而是使用Ext.ComponentQuery.query('myXtype [itemId = myItemId]')[0]; http://docs.sencha.com/extjs/4.2.2/#!/api/Ext.ComponentQuery
或
定义服务的方式是对其进行调用,如
string validateUser();
然后在服务内部做类似的事情:
String pass = request.getParameter("password");
喜欢java
答案 1 :(得分:0)
怎么样:
Ext.Ajax.request({
url: 'http://yourdomain:52984/ExtJsRestfulService.svc/validateUser?username='+userget+'&password='+passget,
params: Ext.encode(myparams),
method: 'GET',
headers: this.header || { 'Content-Type': 'application/json;charset=utf-8' },
success: function (response, options) {
var s = response.responseText;
Ext.MessageBox.alert('Success', s);
},
failure: function (response, options) {
Ext.MessageBox.alert('Failed', 'Unable to get');
}
});
你能从网址中获取参数吗?