Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/280.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/449.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php JQuery发布和获取_Php_Javascript_Jquery - Fatal编程技术网

Php JQuery发布和获取

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; } 我在使用此方法时遇到

我有一个我正在尝试编写的方法,可以将数据发布到php文件中,获得结果并以变量形式返回输出。由于某种原因,我的代码块无法工作

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)
也应该为您提供足够的信息,以了解它为什么不工作

  • Ajax是异步的
  • 您的PHP是否返回有效的JSON
  • 这就是您应该如何编写代码以利用ajax的异步特性

    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
    的变量中的完成回调内部可用。仅在完成回调内部可用。