gpt4 book ai didi

javascript - Jquery ajax 发布请求不起作用

转载 作者:太空狗 更新时间:2023-10-29 22:05:03 25 4
gpt4 key购买 nike

我有一个简单的 ajax 表单提交,但它一直给我一个错误。所有错误都说是“错误”。没有代码,没有描述。没有什么,当我失败时提醒它。

带有 jQ​​uery 的 Javascript:

$(document).ready(function(){

$(".post-input").submit(function(){
var postcontent = $(".post-form").val();

if (postcontent == ""){
return false;
}

$(".post-form").attr("disabled", "disabled");

$.ajax({
url: '/post',
type: 'POST',
data: {"post-form": postcontent},
dataType: json,
success: function(response, textStatus, jqXHR) {
alert("Yay!");
},
error: function(jqXHR, textStatus, errorThrown){
alert(textStatus, errorThrown);
}
});
});
});

HTML:

<form class="post-input" action="" method="post" accept-charset="utf-8">
<textarea class="post-form" name="post-form" rows="1" cols="10" onFocus="this.value='';return false;">What are you thinking about...</textarea>
<p><input class="post-submit" type="submit" name = "post.submitted" value="Post"></p>
</form>

如果那里没有问题,那么服务器端( Pyramid ):

def post(request):
session = Session()
user = authenticated_userid(request)
postContent = request.POST['post-form']
if not postContent == '':
session.add(Activity(user.user_id, 0, postContent, None, None))
return {}
return HTTPNotFound()

更新:在使用 firebug 进行更多调试后,我发现发布请求正文仅包含 post.submitted=Post,而不是 {"post-form": postcontent} 的预期结果。

最佳答案

根据 jQuery文档,您必须声明数据类型:

$.ajax({
type: 'POST',
url: url,
data: data,
success: success,
dataType: dataType
});

此外,查看您的服务器端代码,您实际上并不想发布 JSON 格式的数据。这个 {"post-form":postcontent} 是 JSON 格式的数据。您真正想要做的是发送文本或 HTML。看起来是表单数据,我猜是 TEXT。

试试这个:

$.ajax({
url: '/post',
type: 'POST',
data: 'post-form='+postcontent,
dataType: 'text',
success: function(response, textStatus, jqXHR) {
alert("Yay!");
},
error: function(jqXHR, textStatus, errorThrown){
alert(textStatus, errorThrown);
}
});

关于javascript - Jquery ajax 发布请求不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11596065/

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