【问题标题】:PHP cURL with XmlHttpRequest带有 XmlHttpRequest 的 PHP cURL
【发布时间】:2011-07-19 12:10:33
【问题描述】:

场景:这个投票表格 (vote.php) 有 3 个字段,其中一个是包含哈希的隐藏字段。提交表单后,它会通过 XHR 使用 GET 请求单独的脚本 (process.php)。我正在尝试通过 cURL 来模拟这一点,但到目前为止只能使用 cookie jar 获取哈希并保留 phpsessionid。

问题: 处理脚本 (process.php) 似乎能够检测请求是否未使用 XHR 推送,如果我只是使用提交其所需参数,则会返回错误常规 cURL GET。

那么如何在 cURL 中模拟 XHR?或者我说 cURL 中有 XHR 甚至可能是错误的,所以您能否建议任何方法来实现这一点。

【问题讨论】:

    标签: php curl xmlhttprequest


    【解决方案1】:

    process.php 很有可能通过查看 HTTP_X_REQUESTED_WITH 标头来检查 XHR 请求,例如:

    if (isset($_SERVER['HTTP_X_REQUESTED_WITH']) && $_SERVER['HTTP_X_REQUESTED_WITH']=="XMLHttpRequest") { /* Do stuff here */ }
    

    因此,您可以尝试在 cUrl 请求中设置该标头:

    curl -H "HTTP_X_REQUESTED_WITH:XMLHttpRequest"
    

    这很有可能奏效。祝你好运!

    【讨论】:

      【解决方案2】:

      添加以下标题:X-Requested-Width: XMLHttpRequest。这是由所有主要的 JS 库添加的,以便于识别服务器上的此类请求。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-12-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-02-18
        • 2010-11-01
        • 1970-01-01
        相关资源
        最近更新 更多