所以我正在爲cURL編寫一個腳本,腳本以各種方式模擬我的瀏覽器。但我仍然得到一個會話是無效的錯誤。我一直在尋找通過Chrome控制檯,看到兩個錯誤說cURL繞過同源策略
「的SecurityError:阻止原產框架」 http://localhost
「訪問與原點的框架」 http://edugen.wileyplus.com「協議,域和端口必須匹配」
「未捕獲的SecurityError:封鎖與原點的框架」,「從訪問與原點的框架」 http://localhost
http://edugen.wileyplus.com「協議,域和端口必須匹配」
我擡頭一看這個錯誤,我得到了它是如何有一些資料用鉻不再允許框架或東西,但我懷疑這是因爲控制檯引用這兩行代碼。
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以及究竟是什麼問題,用什麼策略。
編輯:更多細節和捲曲代碼
所以我試圖登錄到網站,並獲得了大型機。整個過程非常繁瑣,因爲我必須遵循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;
js窗口安全性錯誤與curl有什麼關係? – dandavis
curl「iFrame」是本地主機,網站「iFrame」是wileyplus。我把iFrame放在引號中,因爲我還不確定它是什麼。 – grasshopper
向我們展示了捲曲代碼,並解釋了你想要做的更好。 – dandavis