Php 使用JQuery从post()接收响应
我有一个脚本通过纯Javascript使用Ajax(POST方法)。 现在我正在尝试学习JQuery,因为它看起来更简单,但是我在请求的响应方面遇到了问题Php 使用JQuery从post()接收响应,php,javascript,jquery,ajax,post,Php,Javascript,Jquery,Ajax,Post,我有一个脚本通过纯Javascript使用Ajax(POST方法)。 现在我正在尝试学习JQuery,因为它看起来更简单,但是我在请求的响应方面遇到了问题 $.post('ajax/wrapper.php', {'desc':$('#description').val()}, function(data){ $('#something').html(data); }); 当我这样做时,请求被成功发送。我可以看到数据库中的更改,但响应没有显
$.post('ajax/wrapper.php', {'desc':$('#description').val()},
function(data){
$('#something').html(data);
});
当我这样做时,请求被成功发送。我可以看到数据库中的更改,但响应没有显示在div#something中。
我也试过了
...
$('#something').html($(data));
...
提前感谢试试:
$('#something').html($.ajax({
type: "POST",
url: "ajax/wrapper.php",
async: false
}).responseText)
你也可以这样试试
var jqxhr = $.post("ajax/wrapper.php",{desc:$('#description').val()}, function(data) {
alert("success");
});
在success
回调中显示数据
jqxhr.complete(function(data){
$('#something').html(data);
});
您可能需要使用$.load
$("#something").load('ajax/wrapper.php', {'desc':$('#description').val()} );
参考:
注释掉以下行:标题(“内容类型:text/xml;charset=iso-8859-1”)
请参阅和中的数据类型
参数。您应该返回带有文本/HTML MIME类型的HTML,或者将dataType
参数设置为“HTML”:
$.ajax('ajax/wrapper.php', {
data: {'desc':$('#description').val()},
dataType: 'html',
type: 'POST',
success: function(data){
$('#something').html(data);
}
}).then(console.log); // debug
第一种方法更可取,因为您实际上返回的是HTML,而text/HTML是正确的MIME方法。尝试以下方法:
$.post('ajax/wrapper.php', {'desc':$('#description').val()},
function(data){
$('#something').html(data);
}, "html");
你能看到firebug中的响应吗?你可以使用一些技术来调试它。我建议做的第一件事是下载Fiddler()。使用此选项可确定请求是否实际被发送,以及数据是否正确返回。接下来,在浏览器中回调函数的Javascript上设置断点。查看
数据中的内容。静态地设置.html()
的参数可能也没有什么坏处,只是为了确保正确地选择了正确的元素expecting@3nigma,这两种方式都不重要。这是非常糟糕的做法。如果没有很好的理由,你不应该提出同步请求。我刚刚回答了这个问题。如果没有异步请求,您就无法执行此操作。它是有效的,但我希望使用$.post()方法(两种方法都可以吗?)。有同样的问题。显然,wrapper.php上的以下行就是问题所在:header(“内容类型:text/xml;charset=iso-8859-1”);load()不能与GET方法一起工作吗?无论如何,除了更改某些内容的内部html之外,我还需要做更多的事情,因此我认为使用post()会更容易。我将所有内容都更改为utf-8以避免将来的麻烦,但您的答案是正确的,我必须查看JQuery的数据类型和字符集。