Очистить данные от AJAXREQUEST - PullRequest
0 голосов
/ 19 февраля 2012

Я хотел бы получить данные с веб-сайта, который использует ajax-запрос для загрузки новых данных с сервера в DIV.

Когда я нажимаю на кнопку веб-сайта, которая загрузит новые данные на веб-сайт, я вижу, что браузер выполняет только 1 запрос POST со следующей строкой сообщения:

AJAXREQUEST = _viewRoot & j_id376 = j_id376 & javax.faces.ViewState = j_id3 & j_id376% 3Aj_id382 = j_id376% 3Aj_id382 & ValueChanged = ложно & АЯКС% 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 голосов
/ 20 февраля 2012

Ваша проблема, вероятно, не в вашем PHP-коде, скорее в том, что вы на самом деле отправляете на сервер. Я предполагаю, что вы указали website.com в качестве заполнителя для любой службы, с которой вы пытаетесь взаимодействовать, но поскольку вы не указали какую-либо информацию о том, куда вы отправляете запрос или как вы получаете ответ, я предполагаю что то, что вы отправляете на сервер, просто игнорируется, потому что то, что вы отправляете, является недопустимым, неполным или требует дополнительных запросов POST / GET. Другая возможность состоит в том, что вы пытаетесь выполнить POST для службы, которая требует аутентифицированного сеанса (перечисленные вами переменные POST могут включать в себя какой-то токен для идентификации сеанса), который вы не установили.

Я бы порекомендовал вам сначала протестировать свой код на более простом "контролируемом тестовом примере". Установите базовую веб-форму, которая возвращает значение true или что-то, когда вы помещаете в нее значение. Сначала проверьте ваш код в более простом случае, чтобы убедиться, что ваш код POST работает.

Затем с помощью средства отладки, такого как LiveHTTPHeaders или Firebug, запишите все взаимодействие запроса POST / GET с сервером. Возможно, было бы неплохо сначала попытаться «воспроизвести» это взаимодействие с помощью инструмента отладки, чтобы доказать, что ваша методология работает. Затем, когда вы точно знаете, что вам нужно сделать с высокого уровня, повторите этот процесс в своем PHP-коде.

Существует не так много других советов, которые кто-либо может дать вам с информацией, которую вы нам дали.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...