【问题标题】:POST to PHP file doesn't work in FiddlerPOST 到 PHP 文件在 Fiddler 中不起作用
【发布时间】:2013-05-07 22:53:44
【问题描述】:

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

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

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

我得到了空白结果,没有返回。它应该在 TextView 中给我test1234

我用简单的$.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 参数?

【问题讨论】:

  • 请记住,当您使用 POST 时,发送的内容应该在 BODY(composer 的底部框)中,而不是在 URL 中。
  • 它有效。您可以作为答案发布,我会批准吗?谢谢。

标签: ajax jquery rest post fiddler


【解决方案1】:

尽管 cmets 中已经有一个非常简短的答案,但我只是遇到了同样的问题并想提供一个稍微长一点的解决方案/解释,因为乍一看我没有得到区别:

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

...无论请求是通过 HTTP GET 还是 POST 发出的!

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


所以 Fiddler 有两种可能的解决方案:

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

  2. 通过“请求正文”传递参数,使用上述内容类型之一,通过$_POST['id']获取PHP中的值:

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多