如何从jQuery.post()获取数据?

时间:2011-07-20 05:01:18

标签: javascript jquery

我的问题是我想在其功能之外使用帖子数据,例如:

$(function() {
  var s = 'something ';
  $.post('ajax.php', {option: 'test'}, function(data) {
    s += data; // data: 'hello world';
  });
  alert(s); // output: 'something ';
});

我的预期结果是''hello world'。 我怎么处理这个?
感谢

6 个答案:

答案 0 :(得分:4)

不应该是:

   $(function() {
       var s = 'something ';
       $.post('ajax.php', {option: 'test'}, function(data) {
         s += data; // data: 'hello world';
        alert(s); // output: 'something ';
       });
    });

显然,只有在ajax调用完成后(如Alex指出的那样),数据才会在s中提供,但之后它将是持久性的......

答案 1 :(得分:3)

var s = 'something ';

$.ajax({
      url: 'ajax.php',
      type: "POST",
      data: ({option: 'test'}),
      async:false,
      success: function(data){
         s += data;
      }
   }
);

 alert(s);

您需要按async:false,

同步请求

答案 2 :(得分:2)

$.ajaxasync:false一起使用,我假设数据来自content-type:json/application,例如

var s = 'something ';
$.ajax({
      url: "ajax.php",
      type: "POST",
      data: ({option: 'test'}),
      dataType: "json",
      async:false,
      success: function(msg){
         s += msg.data;//msg={data: "hello world"}
      }
   }
);
alert(s);

答案 3 :(得分:1)

您有语法错误; )回调结尾应该有post()

此外,当调用alert()时,XHR尚未完成,并将新信息分配给该变量。您需要将其放在post()

的回调中

答案 4 :(得分:0)

您可以将数据写入任意数量的html元素,并使其在函数外部可用。您可以使用全局变量。你可以在会话中存储。这里有很多答案。我理解你的问题吗?

答案 5 :(得分:0)

您的代码应该正常运行。除非ajax.php最终没有回应“Hello World”。请确保并尝试发布结果。错误或输出,无论你能为我们提供什么。