2009-07-27 2 views
0

Я просматривал один сайт под названием BSEINDIA.com (http://www.bseindia.com/stockreach/stockreach.htm?scripcd=532667), я заметил, что по клику Get Quote он, похоже, запускает запрос Ajax и получает цену на выбранные акции. Я попытался отделить этот запрос и уволить его отдельно, но он, похоже, не работает.Как это работает?

Я скопировал код по HTML из той же страницы (http://www.bseindia.com/stockreach/stockreach.htm?scripcd=532667) Любые указатели, почему это не работает, существует какая-то аутентификация, я даже не являюсь участником этого сайта?

Вот что я пытаюсь сделать

<script type="text/javascript"> 

var oHTTP=getHTTPObject(); 
var seconds = Math.random().toString(16).substring(2); 

if(oHTTP) 
{ 
    oHTTP.open("GET","http://www.bseindia.com/DotNetStockReachs/DetailedStockReach.aspx?GUID="+seconds+"&scripcd=532667",true); 
    oHTTP.onreadystatechange=AJAXRes; 
    oHTTP.send(null); 
} 

function AJAXRes() 
{ 
    if(oHTTP.readyState==4)alert(oHTTP.responseText); 
} 

function getHTTPObject(){var obj; 
try{obj=new ActiveXObject("Msxml2.XMLHTTP");} 
catch(e){try{ 
obj=new ActiveXObject("Microsoft.XMLHTTP");} 
catch(e1){obj=null;}} 
if(!obj&& typeof XMLHttpRequest!='undefined'){ 
try{obj=new XMLHttpRequest();} 
catch(e){obj=false;}}return obj;} 



</script> 

Найдено мой ответ здесь http://msdn.microsoft.com/en-us/library/system.net.httpwebrequest.referer%28VS.71%29.aspx

ответ

2

На самом деле, это довольно легко. Когда вы отправляете HTTP-запрос, заголовок с именем Referrer отправляется с запросом. Referrer - это, в основном, URL-адрес страницы, инициировавшей запрос.

BSEINDIA проверяет значение Referrer, чтобы убедиться, что запрос идет со своего сайта. Если это так, он отправляет данные. Если нет, он отправляет свою страницу 404.

Вы можете легко проверить эту теорию, отключив Referrer в своем браузере. В Firefox вы можете сделать это, набрав about:config и установив network.http.sendRefererHeader в 0.

Если вы все еще хотите получить данные, вам нужно будет написать сценарий (на PHP или на другом языке), который сделает запрос с правильным Referrer и выведет результаты.

+0

Возможно, стоит попробовать это расширение в FF, чтобы подделать ссылку https://addons.mozilla.org/en-US/firefox/addon/4513 – Osseta

+0

Отлично, но означает ли это, что я не могу автоматизировать это :( – rsapru

+0

Спасибо, Я нашел способ сделать это http://msdn.microsoft.com/en-us/library/system.net.httpwebrequest.referer%28VS.71%29.aspx – rsapru

0

Там могут быть некоторые формы ограничения IP в месте для доступа к файлам/данные, необходимые для сохранения себя от сторонних скриптов, получающих доступ к своим данным через собственные скрипты. То, что я буду делать.

+2

Запрос на запрос AJAX из вашего браузера будет иметь ваш IP-адрес в качестве источника, не так ли? – thedz

+0

Конечно, это было бы, но как насчет серверных файлов на другом конце? – Christian

0

Возможно Http Referrer. Убедитесь, что вы не нарушаете ограничение авторских прав.

Смежные вопросы