我试图在插件jquery.form.js(http://malsup.com/jquery/form/)中将纯HTML作为响应,但我无法得到它。所以我的代码看起来像这样:
print "$('#filter_form').ajaxForm({
target:'#ajax1',
beforeSend: function() {
console.log('Image uploading started.');
img_status.fadeOut();
img_slider.width('0%');
img_percent_text.html('0%');
},
uploadProgress: function(event, position, total, percentComplete) {
console.log('Image upload update...');
img_slider.width(percentComplete + '%');
img_percent_text.html(percentComplete + '%')
},
complete: function(responseText, statusText, xhr) {
img_slider.width('100%');
img_percent_text.html('100%')
console.log('Image uploading finished!');
img_preview.fadeOut(800);
alert(responseText);
}
});";
print "});";
print '</script>';
由于某种原因,这会改变目标错误,看看代码......
if (empty($_POST)) {
...... // I get this code as output
}
else{
print "this should be the output via ajax";
}
所以问题是:
如何在完整函数中获取纯HTML(responseText返回对象)
如何修复我通过ajax发送的帖子参数?
答案 0 :(得分:1)
如果传入一个空数组(),请注意empty
函数返回FALSE
。
因此,如果您在没有字段(params)的情况下进行POST,则empty($_POST)
将返回FALSE
。
如果要检查请求是否为POST类型,请检查是否使用isset($_POST)
方法或$_SERVER['REQUEST_METHOD'] === 'POST'
设置$ _POST变量。
答案 1 :(得分:0)
您还可以将响应文本/ html对象附加到某些HTML实体,例如
$('#my_id').html(responseText);
<div id='my_id'></div>
答案 2 :(得分:0)
所以这是我的错误:
1.如何将响应视为纯HTML?
responseText是object,包含responseText。
Just use responseText.responseText\
我是怎么发现的: 我用了
console.log(responseText)
在浏览器控制台中输出对象,我发现源代码在responseText中。
2. post方法的问题
我认为这个插件从表单中获取方法所以有两个修复 - 用param强制它
type: 'POST'
在
$('...').ajaxForm({
或者只是将表单方法设置为发布方式:
<form action="example.com" method="post" ></form>