$ .post在针对简单的php时返回对象

时间:2015-06-01 23:02:07

标签: php jquery ajax post

我想我在使用$ .post时遇到了困难...我过去曾成功使用它,但我必须忘记重要的事情。我想要的只是一个"你好世界",但我得到了一个复杂的对象。我很困惑。

var_test.php

<?php
    PRINT "hi";
?>

的index.html

<!doctype html>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.4/jquery.min.js"></script>
<html><head>
    var thing = $.post( "var_test.php");
    console.log(thing);
</head><body></body></html>

控制台输出

Object { readyState: 1, getResponseHeader: .ajax/v.getResponseHeader(), getAllResponseHeaders: .ajax/v.getAllResponseHeaders(), setRequestHeader: .ajax/v.setRequestHeader(), overrideMimeType: .ajax/v.overrideMimeType(), statusCode: .ajax/v.statusCode(), abort: .ajax/v.abort(), state: .Deferred/d.state(), always: .Deferred/d.always(), then: .Deferred/d.then(), 8 more… }

3 个答案:

答案 0 :(得分:1)

您应该添加一个回调来接收来自您的php的响应/数据:

$.post( "var_test.php", function(response) {
    console.log(response);
});

请求完成后将执行该回调,这样,您可以确保准备好数据并设置为在JS中使用它。

答案 1 :(得分:1)

$.post()如果您仔细观察“大”的话,我们就不会返回您的数据。对象它有连接数据。

你想要这个

$.post('var_test.php', function(myData) {
    console.log(myData);
});

此外,您应该使用$.get()来完成这类事情,方式完全相同

$.get('var_test.php', function(myData) {
    console.log(myData);
});

答案 2 :(得分:1)

问题在于jquery代码,要求您使用以下代码的页面内容:

$.post( "var_test.php", function( data ) {
    console.log( data );
});

在您编写的代码中,$ .post(&#34; var_test.php&#34;)返回一个jqXHR对象,它是一个异步调用,因此您需要使用回调,可在此处找到更多信息:

http://api.jquery.com/jquery.post/