POST到PHP文件在Fiddler中不起作用

时间:2013-05-07 22:53:44

标签: ajax jquery rest post fiddler

我将这个非常基本的PHP文件上传到www.example.com(非本地):

<?php
header('Access-Control-Allow-Origin: *');
echo $_POST['var1'];
?>

我在Fiddler中编写了一个简单的测试,如下所示

enter image description here

我得到了空白的结果,没有回来。它应该在TextView

中给我test1234

enter image description here

我使用简单的$.ajax调用进行了测试,它可以在浏览器中运行。我还上传到另一个域名来测试跨域调用,它也有效。

$.ajax({
    type: "POST",
    url: "http://www.example.com/test.php",
    data: {var1: "test1234"}
}).done(function(msg) {
    console.log(msg);
});

但是,如果我将所有内容都交换到GET(php,Fiddler),它就可以了。 那么为什么我不能让Fiddler通过POST参数?

1 个答案:

答案 0 :(得分:0)

即使评论中已经有一个非常简短的答案,我只是遇到了同样的问题,并想提供一个稍长的解决方案/解释,因为乍一看我并没有得到差异:

您的问题是,PHP的$_GET$_POST没有映射到HTTP GETPOST

...无论请求是通过HTTP GET还是POST生成的!

您的$.ajax测试有效,因为您通过请求正文传递了该值 你的Fiddler测试没有用,因为你通过URL参数传递了值。

因此,Fiddler有两种可能的解决方案:

  1. 通过URL传递参数,通过$_GET['id']获取PHP中的值:

    GET

  2. 通过&#34; Request Body&#34;传递参数,使用上面提到的某种内容类型,通过$_POST['id']获取PHP中的值:

    POST