gpt4 book ai didi

jquery - 在我发送到服务器的对象上出现关键错误(jQuery -> Python)

转载 作者:行者123 更新时间:2023-12-01 05:27:09 25 4
gpt4 key购买 nike

下面是我发送到服务器的登录对象:

Object {username: "hi@hi.com", password: "password"} 

它包含无效的用户名和密码。

在 python 中,它检查 POST,然后检查用户名

try:
print self.request.POST
username = str(self.request.POST['username'])

打印返回以下内容:

MultiDict([('{"username":"hi@hi.com","password":"password"}', '******')])

但是在 username = 行 上出错了

异常 block :

except Exception, ex:
print ex.message

异常(exception)是ex = {KeyError}'username'

关于为什么username = str(self.request.POST['username'])没有从POST中获取用户名有什么想法吗?

<小时/>

HTML 表单(操作被删除,因为否则我无法显示错误消息)

<!-- LOGIN -->
<div id="login-form">
<form class="login-form" action="" method="post">

<input type="text"
id="login-email" value="email" name="username"
onblur="if (this.value == '') {this.value = 'email';}"
onfocus="if (this.value == 'email') {this.value = '';}"
autocomplete="off"/>

<div class="tip-error-message" id="error-email"><span>A valid email is required</span></div>

<input type="password"
id="login-password" value="password" name="password"
onblur="if (this.value == '') {this.value = 'password';}"
onfocus="if (this.value == 'password') {this.value = '';}"
autocomplete="off"/>

<button id="login_page_submit" type="submit">login</button>

<div id="login-form-background"></div>
</form>
</div>

然后在 jQuery 中我有这个,所以当我收到错误响应时,我可以在页面上显示消息:

$('#login-form').unbind('submit').bind("submit", function(event) {

WHOAT.validation.validateLoginForm('#login-form'); // custom validation

var params = {
username : '',
password : ''
}

params.username = $('#login-email').val();
params.password = $('#login-password').val();

console.log(params.username); // hi@hi.com
console.log(params.password); // password

WHOAT.networking.postToServerWithAjax('/login', params, function (response) {

console.log(response);

});

return false;

});

postToServerWithAjax函数

var postToServerWithAjax = function (url, params, callback) {
console.log('postToServerWithAjax:');
console.log(url); //returns: login
console.log(params); //returns: Object {username: "hi@hi.com", password: "password"}
invokeServer(url, params, callback, 'POST');
}

invokeServer函数

var invokeServer = function(url, params, callback, postMethod) {
WHOAT.analytics.trackPageView(url);
$.ajax({
type: postMethod,
url: url,
cache: false,
data: JSON.stringify(params),
//contentType: 'charset=utf-8',
statusCode: {
200: function (data, textStatus, jqXHR) {
callback(data);
},
201: function (data, textStatus, jqXHR) {
callback(data);
},
400: function (data, textStatus, jqXHR) {
callback(data);
}
}
});
}

最佳答案

您发布的是 JSON 编码数据,而不是表单编码或 URL 编码数据。

使用 requests.json_body 访问 JSON 编码的对象属性:

username = self.request.json_body['username']

关于jquery - 在我发送到服务器的对象上出现关键错误(jQuery -> Python),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21100976/

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