从AJAXREQUEST中截取数据

时间:2012-02-19 15:53:40

标签: php ajax curl

我想从使用ajax请求的网站中获取数据,以便将新数据从服务器加载到DIV中。

当我点击网站上的按钮,将新数据加载到网站时,我可以看到浏览器只发出1个POST请求,并带有以下帖子字符串:

AJAXREQUEST = _viewRoot&安培; j_id376 = j_id376&安培; javax.faces.ViewState = j_id3&安培; j_id376%3Aj_id382 = j_id376%3Aj_id382&安培;的valueChanged =假安培; AJAX%3AEVENTS_COUNT = 1&安培;

当我使用php curl执行上述帖子请求时,我没有得到任何有用的数据。

有人知道如何为这种请求螃蟹数据吗?

UPDATE1:

这是我在php中使用的:

$ch = curl_init ('http://www.website.com');
$post_string = 'AJAXREQUEST=_viewRoot&j_id376=j_id376&javax.faces.ViewState=j_id3&j_id376%3Aj_id382=j_id376%3Aj_id382&valueChanged=false&AJAX%3AEVENTS_COUNT=1&';
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30);  
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt ($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_string);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_COOKIEJAR, $ckfile); 
curl_setopt ($ch, CURLOPT_COOKIEFILE, $ckfile);
$output = curl_exec ($ch);

我没有得到任何结果,也没有任何错误或消息。

1 个答案:

答案 0 :(得分:0)

您的问题可能不在于您的PHP代码,它更可能与您实际发送到服务器的内容有关。我假设您将website.com列为您尝试与之交互的任何服务的占位符,但由于您没有列出任何有关您发送请求的位置或您回来的内容的信息,我假设您发送到服务器的内容只是被忽略,因为您的发送无效或不完整,或需要进一步的POST / GET请求。另一种可能性是您尝试POST到需要经过身份验证的会话(您列出的POST变量可能包含某种令牌以识别会话)的服务,而该服务尚未建立。

我建议您首先在更简单的“受控测试用例”上测试您的代码。设置一个基本的Web表单,当您向其发布值时返回true或其他内容。首先使用更简单的案例测试您的代码,以确保您的POST代码有效。

然后使用LiveHTTPHeaders或Firebug等调试工具记录整个POST / GET请求与服务器的交互。首先尝试使用调试工具“重放”此交互以证明您的方法有效,这可能是个好主意。然后,一旦从高级别确切地知道需要做什么,请在PHP代码中重复此过程。

没有太多其他建议,任何人都可以提供给你的信息。