我的问题是我想在其功能之外使用帖子数据,例如:
$(function() {
var s = 'something ';
$.post('ajax.php', {option: 'test'}, function(data) {
s += data; // data: 'hello world';
});
alert(s); // output: 'something ';
});
我的预期结果是''hello world'。
我怎么处理这个?
感谢
答案 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)
将$.ajax
与async: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”。请确保并尝试发布结果。错误或输出,无论你能为我们提供什么。