使用JQuery从post()接收响应

receiving response from post() with JQuery

本文关键字:响应 JQuery post 使用      更新时间:2023-09-26

我有一个脚本通过普通Javascript使用Ajax (POST方法)工作。现在我试图学习JQuery,因为它似乎更容易,但我有一个请求的响应问题

$.post('ajax/wrapper.php', {'desc':$('#description').val()},
        function(data){
            $('#something').html(data);
        });

当我这样做时,请求被成功发送。我可以看到我的DB的变化,但响应没有出现在div#的东西。我也试过

...
   $('#something').html($(data));
...

Thanks in advance

注释掉下面一行可以:header("Content-type: text/xml;charset = iso - 8859 - 1 ")

参考本文档和jQuery.ajax中的dataType参数。您应该返回带有text/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。

你也可以这样试试

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()} );

参考:http://api.jquery.com/load/

试试这个:

$.post('ajax/wrapper.php', {'desc':$('#description').val()},
        function(data){
            $('#something').html(data);
        }, "html");

尝试:

$('#something').html($.ajax({
  type: "POST",
  url: "ajax/wrapper.php",
  async: false
 }).responseText)
http://api.jquery.com/jQuery.ajax/