2014-02-17 5 views
0

Итак, я пишу скрипт для cURL, и скрипт эмулирует мой браузер повсюду. Но я все еще получаю сессию, это неверная ошибка. Я просматривал хромированную консоль и увидел две ошибки, говоряcURL в обход той же политики происхождения

«SecurityError: Blocked кадра с началом» http://localhost «от доступа кадра с началом» http://edugen.wileyplus.com «Протоколы, домены и порты должны соответствовать»

«Uncaught SecurityError: Blocked кадра с началом» http://edugen.wileyplus.com «от доступа кадра с началом» http://localhost «Протоколы, домены и порты должны соответствовать»

Я смотрел эту ошибку, и я получил некоторую информацию о том, как он должен делать с хромом, больше не разрешая кадры или что-то в этом роде, но я сомневаюсь, что это потому, что ссылки на консоль эти две строки кода.

var win = self; 
    while (typeof(win.isLTIRoot) == 'undefined' && win.parent != null && win.parent != self && win.parent != win) 

и это один

function setSTNOnLoadListener(wnd) { 
    setSTNFrameOnLoadListener(wnd, wnd.document.getElementsByTagName('frame')); 
    setSTNFrameOnLoadListener(wnd, wnd.document.getElementsByTagName('iframe')); 
} 

Так что стратегия, которую я должен использовать с Curl, и что именно является проблемой.

Edit: Более подробно и локон код

Так что я пытаюсь войти в веб-сайт и получить мэйнфреймов. Весь процесс утомительный, поскольку я должен следить за 9 заголовками местоположений, и все идет хорошо, но когда я наконец добираюсь до веб-страницы, я получаю сообщение об ошибке «ваша сессия недействительна».

вот скругленный код последней страницы для мэйнфрейма.

$ch = curl_init(); 

// Set some options - we are passing in a useragent too here 
curl_setopt_array($ch, array(
    CURLOPT_RETURNTRANSFER => 1, 
    CURLOPT_FOLLOWLOCATION => FALSE, // Setting cURL to follow 'location' HTTP headers 
    CURLOPT_URL => $url9, 
    CURLOPT_USERAGENT => "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:26.0) Gecko/20100101 Firefox/26.0", 
    CURLOPT_STDERR => $verbose = fopen('php://temp', 'rw+'), 
    CURLOPT_VERBOSE => TRUE, 
    CURLOPT_HTTPHEADER => array(
           'Host: edugen.wileyplus.com', 
           'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8', 
           'Accept-Language: en-US,en;q=0.5' 
          ), 
    CURLOPT_CAINFO => dirname(__FILE__)."\cacert.pem", 
    CURLOPT_HEADER => TRUE, 
    CURLOPT_COOKIEJAR => $ckfile, 
    CURLOPT_COOKIEFILE => $ckfile 
)); 
if(! $tenth_page = curl_exec($ch)) 
      { 
       trigger_error(curl_error($ch)); 
      } 
$urlEndpoint = curl_getinfo($ch, CURLINFO_EFFECTIVE_URL); 
echo "Verbose information:\n<pre>", !rewind($verbose), htmlspecialchars(stream_get_contents($verbose)), "</pre>\n"; 

curl_close($ch); 

$tenth_page = str_replace("src=\"","src=\"http://edugen.wileyplus.com",$tenth_page); 

echo $tenth_page; 
+1

Какая ошибка безопасности окна js связана с завитком? – dandavis

+0

завиток «iFrame» - это локальный хост и сайты «iFrame» - это wileyplus. Я помещаю iFrame в кавычки, потому что я все еще не уверен, что это такое. – grasshopper

+0

покажите нам код завитка и объясните, что вы пытаетесь сделать лучше. – dandavis

ответ

0

Я ожидаю, что они развернули некоторую защиту, чтобы их страница не загружалась в iFrame из другого домена.

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

+0

Да, мой сайт-разработчик называется localhost, iFrame - это способ обмануть его, думая, что iFrame - это то же самое? – grasshopper

+0

Иногда вы можете уйти с созданием субдомена хоста, к которому вы обращаетесь, например. local.other.hostname. - Вам нужно будет исправить свои DNS-файлы или отредактировать файл хостов, чтобы он разрешил 127.0.0.1 – BillyBigPotatoes

+0

wow, изменить хост? Нет никакой функции HTTP-заголовка или завитка, чтобы изменить ее? Что такое i Frame? – grasshopper

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