2011-03-21 35 views
0

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

问题:处理脚本(process.php)似乎能够检测如果请求没有推直通使用XHR并返回一个错误,如果我只是提交使用正则卷曲获得其所需的参数。

那么我该如何模拟cURL中的XHR?或者我也可能错误地说有XHR在卷曲,所以你可以请教任何方法如何实现这一目标。

回答

3

还有就是通过看HTTP_X_REQUESTED_WITH头process.php检查的XHR请求,例如一个很好的机会:

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

所以,你可以尝试设置这个头在你的cUrl作者要求:

这有很好的工作机会。祝你好运!

2

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