PHP ajax将数据空

时间:2016-06-22 09:45:30

标签: php jquery ajax

我使用php发布来自create。$.ajax的表单数据,如下所示。

$(document).ready(function () {

    var request;
    $("#create-pto").submit(function(e) {
        // Abort any pending request
        if (request) {
            request.abort();
        }

        var $form = $(this);
        var serializedData = $form.serialize();

        request = $.ajax({
            url: 'index.php',
            type: 'POST',
            contentType : 'application/json',
            data:  serializedData
        }).done(function (response, textStatus, jqXHR) {
            // Log a message to the console
            console.log("Hooray, it worked!");
        });

        e.preventDefault();

    });

});

我可以看到发布的数据,我可以记录发布成功。

但是在index.php中无法检索发布的数据。

这就是我在index.php中尝试的方法

var_dump($_POST);  

表格:

       <form class="form-horizontal"  id="create-pto"  >
                 <div class="form-group">
                    <label for="inputEmail3" class="col-sm-2 control-   label">App ID</label>

                    <div class="col-sm-4">
                        <input type="text" class="form-control" name="app-id" id="app-id" placeholder="App ID">
                    </div>
                </div>
                <div class="form-group">
                    <label for="inputPassword3" class="col-sm-2 control-label">App Name</label>

                    <div class="col-sm-4">
                        <input type="text" class="form-control" name="app-name" id="app-name"
                               placeholder="App Name">
                    </div>
                </div>

                <div class="form-group">
                    <label for="inputPassword3" class="col-sm-2 control-label">Instance Name</label>

                    <div class="col-sm-4">
                        <input type="text" class="form-control" id="inputPassword3" name="ins-name"
                               placeholder="Instance Name">
                    </div>
                </div>

            <div class="form-group">
                    <div class="col-sm-offset-2 col-sm-10">
                        <button type="submit" class="create" class="btn btn-success">Create PTO</button>
                    </div>
                </div>
              </form> 

请帮助。

4 个答案:

答案 0 :(得分:1)

尝试更改JavaScript代码的contentType:

contentType : 'application/x-www-form-urlencoded',

如果你想将contentType保持为json,请在你的PHP文件上尝试这种方式:

echo file_get_contents('php://input');

答案 1 :(得分:1)

如果您使用.serialize(),则需要将contentType更改为'application / x-www-form-urlencoded'。

如果你想保留contentType: 'application/json',你必须使用JSON.stringify。

另请注意,POST请求中的JSON字符串是使用file_get_contents('php://input');而非$_POST

进行检索的

答案 2 :(得分:0)

更改您的

  

contentType:'application / json'

  

dataType:“JSON”

它将开始工作..我在我的系统上测试了代码。

答案 3 :(得分:0)

尝试type:GET代替type:POST,也可以在index.php

中调用 var_dump($ _ GET)