有沒有方法可以在不通過QTWebKit客戶端的情況下在PhantomJS(或CasperJS)中下載文件?在PhantomJS中檢索URL,而不是通過客戶端
我想從與測試頁面無關的URL下載以JSON編碼的數據。
從PhantomJS API或CasperJS API中看不出它是如何做到這一點的,因爲它們的功能似乎適用於在幽靈客戶端中打開URL。
我希望,人們可以簡單地運行是這樣的:
fetch(URL, callback);
下載到PhantomJs頁面,然後到客戶端的普通課程的原因有兩個問題。首先,它很慢,很麻煩。其次,它違反了同源政策(所以CasperJS base64encode函數將不起作用)。
從最基本的角度來說,我期望PhantomJS客戶端的javascript runner會實現XMLHttpRequest(或類似的東西),但我不知道是否有更多規範的東西可用。
編輯
或許有可能只是包括jQuery和使用$.ajax
,但不幸的是拋出一個相同來源的異常,以及:
的XMLHttpRequest無法加載http://example.com:5000/test。原始文件://不被Access-Control-Allow-Origin允許。
唯一的解決辦法我能想出是下載我想在JSON訪問一個單獨的進程中的文件(例如使用wget的),但由於PhantomJS does not permit execution of processes(本文寫作時),它似乎是它必須與PhantomJS分開啓動。
您是否嘗試使用'--web-security = no'選項?這在理論上將允許繞過CORS策略。 – NiKo
@NiKo:''--web-security = no''僅在''page''上下文中禁用同源策略,而不是在幻像本身中。 – prayerslayer