Jquery ajax发布请求不起作用
Jquery ajax post request not working
我用ajax提交了一个简单的表单,但它总是给我一个错误。所有的错误都是"错误"。没有代码,没有描述。没有什么,当它失败时我会提醒它。
带有jQuery的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>
如果没有问题,那么服务器端(金字塔):
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请求体只包含post.submited=post,而不是{"post-form":post-content}的预期结果。
根据jQuery文档,您必须声明数据类型:
$.ajax({
type: 'POST',
url: url,
data: data,
success: success,
dataType: dataType
});
此外,查看服务器端代码,实际上并不希望发布JSON格式的数据。此{"post-form":postcontent}
是JSON格式的数据。您实际想要做的是发送TEXT或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);
}
});
由于您发布的是JSON
-数据,因此您必须声明dataType"JSON":
$.ajax({
url: '/post',
type: 'POST',
dataType: "json",
data: {"post-form": postcontent},
success: function(response, textStatus, jqXHR) {
alert("Yay!");
},
error: function(jqXHR, textStatus, errorThrown){
alert(textStatus, errorThrown);
}
});
我认为问题在于您传递的数据没有正确写入。
尝试改变这个:
data: {"post-form": postcontent},
对此:
data: 'post-form='+ $('.post-form').val(),
相关文章:
- 为什么 AJAX POST 请求不起作用
- AJAX请求不起作用,除非使用alert()
- Ajax Post请求不起作用
- IE8 jquery ajax头请求不起作用
- JQuery AJAX请求不起作用
- Ajax 对 JSON 的请求不起作用
- React JS js 中的 AJAX 请求不起作用
- 对 URL 的 JSON-P 请求不起作用
- Jquery ajax请求不起作用
- Jquery ajax发布请求不起作用
- 外部AJAX请求不起作用
- 对SOAP服务的Preflight OPTIONS请求不起作用
- AJAX请求不起作用,莫名其妙,有什么新眼光来看它
- 使用外部JS文件时,Codeigniter ajax请求不起作用
- 每个循环的 JQuery 延迟对后置请求不起作用
- AJAX 请求不起作用
- 移动应用程序上的jQuery请求不起作用
- 使用 Angular JS 登录,$http请求不起作用
- 移动设备上的 AJAX 请求不起作用
- AJAX 请求不起作用 (POST)