Php JQuery发布和获取
我有一个我正在尝试编写的方法,可以将数据发布到php文件中,获得结果并以变量形式返回输出。由于某种原因,我的代码块无法工作Php JQuery发布和获取,php,javascript,jquery,Php,Javascript,Jquery,我有一个我正在尝试编写的方法,可以将数据发布到php文件中,获得结果并以变量形式返回输出。由于某种原因,我的代码块无法工作 function post_get(){ var result = null; $.post("modules/data.php", { "func": "getNameAndTime" }, function(data){ result = JSON.parse(data); }, "json"); return result; } 我在使用此方法时遇到
function post_get(){
var result = null;
$.post("modules/data.php", { "func": "getNameAndTime" },
function(data){
result = JSON.parse(data);
}, "json");
return result;
}
我在使用此方法时遇到此错误
语法错误:JSON解析错误:意外标识符“未定义”如果服务器返回正确的JSON编码输出并设置正确的标题(
Content-Type:application/JSON
),则可以立即使用数据
:
$.post("modules/data.php", {
"func": "getNameAndTime"
},
function(data){
console.log(data);
}, "json");
// btw, at this point in the code you won't have access to the return value
事实上,即使它没有返回正确的数据,console.log(data)
也应该为您提供足够的信息,以了解它为什么不工作
function post_get(){
return $.post("modules/data.php", { "func": "getNameAndTime" }, "json");
}
post_get().done(function(data){
// do stuff with data
console.log(data);
}).fail(function(){
console.log(arguments);
alert("FAIL.\nCheck the console.");
});
// Do not attempt to bring data from inside the above function to out here.
定义“不工作”。哦,等等。。。很好,我的水晶球又回来了。我完全知道你的问题是什么!您是否返回了有效的JSON?请查看开发人员工具上的请求/响应,以确保您得到了返回。顺便说一下,您没有返回任何内容!假设您发送了正确的mime类型,jQuery会为您解析JSON,
data
是一个JS对象。否则,data
将是一个字符串,data[0]
将是它的第一个字符。+1,这是什么<代码>函数post_get(){$.post(“…”,{…},“…”).done(函数(数据){…}},我错了吗?是的,这也可以工作,但它不允许外部访问结果。@Sheikheera它是“相同的”,Kevin B的版本只允许在函数调用之外进行更多的控制。这取决于您是要将回调传递给函数还是绑定自己的事件。return语句将提供类似以下内容的内容:对象中止:函数(statusText){always:function(){complete:function(){done:function(){error:function(){fail:function(){getAllResponseHeaders:function(){getResponseHeader:function(key){OverrideMemimetype:function(type){pipe:function(){progress:function(){promise:function(obj){readyState:4 responseText:“STRING”如何获取响应文本?响应文本在名为data
的变量中的完成回调内部可用。仅在完成回调内部可用。