Jquery .ajax method ="post"但$ _POST为空

Tig*_*ger 13 php ajax jquery

$.ajax({
    method: "post"
    , url: "save.php"
    , data: "id=453&action=test" 
    , beforeSend: function(){

    } 
    , complete: function(){ 
    }  
    , success: function(html){ 
        $("#mydiv").append(html);        
    }
});
Run Code Online (Sandbox Code Playgroud)

我已经将方法类型设置为post但在Save.php中我只是在$_GET$_REQUEST不在中获取值$_POST.

我的表格如下:

<form method="post" id="myform" action="save.php">
Run Code Online (Sandbox Code Playgroud)

它无法正常工作,在这里查看并在Google上尝试添加 enctype

<form method="post" id="myform" action="save.php" enctype="application/x-www-form-urlencoded">
Run Code Online (Sandbox Code Playgroud)

但还是$_POST空的?

我如何使其工作?

Wal*_*jad 10

而不是method: "post"你需要使用type: "POST"

所以这应该没有任何改变您的表单HTML:

$.ajax({
    type: "POST"
    , url: "save.php"
    , data: "id=453&action=test" 
    , beforeSend: function(){

    } 
    , complete: function(){ 
    }  
    , success: function(html){ 
        $("#mydiv").append(html);        
    }
});
Run Code Online (Sandbox Code Playgroud)

不知道为什么它不起作用但这对我有用:

save.php

<?php
print_r($_POST);
Run Code Online (Sandbox Code Playgroud)

file.html

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
    <title>Example</title>

    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
    <script type="text/javascript">
        $(function() {
            $('input').click(function() {
                $.ajax({
                    type: "POST"
                    , url: "save.php"
                    , data: "id=453&action=test" 
                    , beforeSend: function(){

                    } 
                    , complete: function(){ 
                    }  
                    , success: function(html){ 
                        alert(html);        
                    }
                });
            });
        });
    </script>
</head>

<body>
    <div id="main"><input type="button" value="Click me"></div>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

你的错误必须在其他地方.


小智 5

**在成功之前在您的代码中添加以下代码**

beforeSend: function(xhr){xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded")}
Run Code Online (Sandbox Code Playgroud)