PHP Curl и Ajax-запрос к странице ASP.NET - PullRequest
0 голосов
/ 19 февраля 2011

Я пытаюсь отправить ajax-запрос на страницу ASP.NET.

Алгоритм:

1. I have form on my page;
2. When user filled all fields he clicks submit button;
3. When submit button is clicked js send ajax request to page on my server (test.php)
4. test.php sends request to page on other server (ASP.NET). (page results in text/palin if right post fields was sended)
5. test.php echo result and js callback alert this result;

Я знаю, что мой код на стороне клиента работает отлично, но на стороне сервера ... Этокод серверной части:

define('POSTURL', 'http://nakolesah.ru/');
define('POSTVARS', 'ctl00%24sm=ctl00%24contentPlaceHolder%24upnlFilterAuto%7Cctl00%24contentPlaceHolder%24ddlSizeVendorsAuto&__EVENTTARGET=ctl00%24contentPlaceHolder%24ddlSize...

$ch = curl_init(POSTURL);
curl_setopt($ch, CURLOPT_POST      ,1);
curl_setopt($ch, CURLOPT_POSTFIELDS    ,POSTVARS);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION  ,1); 
curl_setopt($ch, CURLOPT_HEADER      ,0);  // DO NOT RETURN HTTP HEADERS 
curl_setopt($ch, CURLOPT_RETURNTRANSFER  ,1);  // RETURN THE CONTENTS OF THE CALL
curl_setopt($ch, CURLOPT_REFERER, POSTURL);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('X-Requested-With: XMLHttpRequest', 'X-MicrosoftAjax: Delta=true', 'Host: nakolesah.ru', 'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8', 'Content-Type: application/x-www-form-urlencoded; charset=utf-8', 'Connection: keep-alive'));
$Rec_Data = curl_exec($ch);
echo $Rec_Data;
die();

(запрос должен имитировать ajax-запрос)

Результат сейчас:

1 | # || 4 | 58 | pageRedirect ||% 2fGenericErrorPage.aspx% 3faspxerrorpath% 3d% 2fDefault.aspx |

Кажется, что это ошибка, потому что обычный результат должен давать что-то вроде html-list.

Я скопировал данные POST и Header с помощью httpfox.

Я пытался абсолютно имитировать мой браузер, когда cookie-файлы моего браузера были отключены:

curl_setopt($ch, CURLOPT_HTTPHEADER, array('Host: nakolesah.ru',
                                               'User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; uk; rv:1.9.2.13) Gecko/20101203 Firefox/3.6.13 WebMoney Advisor',
                                               'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
                                               'Accept-Language: uk,ru;q=0.8,en-us;q=0.5,en;q=0.3',
                                               'Accept-Encoding: gzip,deflate',
                                               'Accept-Charset: UTF-8,*',
                                               'Keep-Alive: 115',
                                               'Connection: keep-alive',
                                               'X-Requested-With: XMLHttpRequest',
                                               'X-MicrosoftAjax: Delta=true',
                                               'Cache-Control: no-cache, no-cache',
                                               'Content-Type: application/x-www-form-urlencoded; charset=utf-8',
                                               'Pragma: no-cache'));

И это не работает: (

Есть идеи насчет отправки ajax-запроса наСтраница ASP.NET с помощью PHP CURL?

1 Ответ

0 голосов
/ 19 февраля 2011

Отправка запросов на страницу Asp.Net или веб-сервис Asp.Net не представляет проблем, там, где это разрешеноНо мне кажется, что вы хотите получить HTML-содержимое панели обновления.Безопасность asp net updatepanels не является неразрушимой, но она абсолютно не предназначена для копирования с других веб-сайтов.Я никогда не пробовал, но думаю, ты не достигнешь своей цели.Сеть Asp генерирует состояние представления, которое зашифровано, и для запроса ajax оно использует это состояние представления для проверки запроса.Вы не сможете воспроизвести это поле состояния представления, которое необходимо для работы панели обновления.

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