Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/460.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
Javascript 如何使用POST请求向PHP脚本正确发送数据?_Javascript_Php_Ajax - Fatal编程技术网

Javascript 如何使用POST请求向PHP脚本正确发送数据?

Javascript 如何使用POST请求向PHP脚本正确发送数据?,javascript,php,ajax,Javascript,Php,Ajax,更新: 尝试使用完全错误的方法进行调试。我通过网络选项卡双击.php文件,并假设它发送的标题与通过ajax POST请求发送的标题相同。这就是GET为我工作的原因(因为数据打包在URL中,双击php文件意味着我在模拟ajax请求中会发生什么) 感谢@Phil为我指明了正确的方向:在使用error打印返回的结果数据后,我发现responseText包含了我最初希望从POST请求中获得的内容 Below this point is the original post 我试图通过POST请求发送2条

更新: 尝试使用完全错误的方法进行调试。我通过网络选项卡双击.php文件,并假设它发送的标题与通过ajax POST请求发送的标题相同。这就是GET为我工作的原因(因为数据打包在URL中,双击php文件意味着我在模拟ajax请求中会发生什么)

感谢@Phil为我指明了正确的方向:在使用error打印返回的结果数据后,我发现responseText包含了我最初希望从POST请求中获得的内容

Below this point is the original post
我试图通过POST请求发送2条信息,而不使用表单

当我在Chrome的网络选项卡中查看php文件的标题时,它似乎正确地将数据作为“表单数据”发送。但是,使用
print\r($\u POST)
检查是否在PHP端检索数据只会导致一个空数组:
“array()”

JS

url = "/members/duc.php";
data = {
            "d": "test",
            "r": 156
        };
$.ajax({
            'type': "POST",
            'async': false,
            'global': false,
            'url': url,
            'data': data,
            'dataType': "json",
            'success': function (data) {
                jsonContainer = data;
                console.log('success');
            }
        });
PHP

print_r($_POST);
尝试调试
5.将ajax
方法:“POST”
更改为
方法:“GET”
在服务器端用代码
print\r($\u GET)

1.我尝试了
$\u REQUEST
并设置了任意
var=file\u get\u contents(“php://input");
2.我尝试过以json格式发送,然后解码输入。
3.我尝试过使用
$.post
而不是
$.ajax

4.我已尝试将ajax中的数据设置为
{duc:data}

6.尝试了地址栏中包含www.的POST方法,没有更改

$\u GET正在工作,因为



数据类型:'json'是严格的,请检查您的php echo数据类型,确保是json

试试这个

//js
url = "/members/duc.php";
data = {
            "d": "test",
            "r": 156
        };
$.ajax({
            'type': "POST",
            'async': false,
            'global': false,
            'url': url,
            'data': data,
            //'dataType': "json",
            'success': function (data) {
                jsonContainer = data;
                console.log('success');
            }
        });
//php
print_r($_POST);


将获取数据,但我认为第二个更好。

您是否使用浏览器的网络检查器查看实际传递到脚本的数据?“url”参数在执行请求时是否实际解析为预期的url?是的,我正在通过网络检查器打开php文件,对打印出来的内容进行双重检查。php会自动解析json编码的实体。您的整个请求应在
php://input
可能您编辑了不同的php文件是php code
print\r($\u POST)仅限?
//js
url = "/members/duc.php";
data = {
            "d": "test",
            "r": 156
        };
$.ajax({
            'type': "POST",
            'async': false,
            'global': false,
            'url': url,
            'data': data,
            'dataType': "json",
            'success': function (data) {
                jsonContainer = data;
                console.log('success');
            }
        });
//php
echo json_encode($_POST);