2015-11-17 6 views
5
में

मैं CasperJS का उपयोग कर एक वेब सर्वर से एक फ़ाइल धारा डाउनलोड करने के लिए असमर्थ हूं:एक फ़ाइल क्रॉस-डोमेन डाउनलोड CasperJS

  • एक रूप एक यूआरएल को पोस्ट किया जाता है
  • यूआरएल एक फ़ाइल धारा रिटर्न

अभी तक मैंने मान्य किया है कि सही फॉर्म मान पोस्ट किए गए हैं।

var casper = require('casper').create({ 
    verbose: true, 
    logLevel: 'debug', 
    viewportSize: {width: 1440, height: 800}, 
    pageSettings: { 
     userName: '****', 
     password: '****', 
     webSecurityEnabled: false 
    }, 
    waitTimeout: 200000 
}); 

casper.start("***"); 

casper.then(function() { 
    var exportForm = this.evaluate(function() { 
     return $("#export_pdf_form").serialize(); 
    }); 

    var exportAction = this.evaluate(function() { 
     return $("#export_pdf_form").attr('action'); 
    }); 

    var url, file; 
    url = '***' + exportAction; (eg. https://webserver/export) 
    file = "export.pdf"; 
    casper.page.settings.webSecurityEnabled = false; 
    casper.download(url, fs.workingDirectory + '/' + file, "POST", exportForm); 
}); 

कैस्पर त्रुटि द्वारा "XMLHttpRequest अपवाद 101" बाद "दुर्भाग्य से casperjs क्रॉस डोमेन ajax अनुरोध नहीं कर सकते"। खोज के बाद यह बताता है कि वेब सुरक्षा चर को गलत करने के लिए सेटिंग्स को यह काम करना चाहिए ... लेकिन ऐसा नहीं है। मुझे और कुछ और देखना चाहिए?

casperjs - v1.1.1 phantomjs - v2.0.0

+0

एक ही समस्या का सामना करना, क्या आपको अंततः एक कामकाज मिल गया? webSecurityEnabled मेरे लिए भी काम नहीं कर रहा है। – Sam

+1

@ सैम नोप –

+1

@ सैम के लिए छोड़ दिया गया है, मुझे अंत में यह काम मिल गया है ... केवल फैंटॉमजेएस 2.1 को अपडेट करके –

उत्तर

0

कुछ भी नहीं बाहर कर देता है मेरी कोड के साथ गलत है, बस 2.1.1 के लिए 2.0.0 से PhantomJS को अद्यतन करने के मुद्दे को हल किया है।

0

वैकल्पिक उत्तर: आप अपनी साइट के माध्यम से एक एपीआई इंटरफ़ेस के माध्यम से प्रॉक्सी लागू कर सकते हैं। चेतावनी: केवल उन संसाधनों के साथ किया जाता है जिन्हें आप नियंत्रित करते हैं, क्योंकि यह आपकी साइट को सामग्री के लिए ज़िम्मेदार होने की आवश्यकता होती है, और यदि आपने मैलवेयर या असुरक्षित सामग्री की अनुमति दी है तो आपके प्रमाणपत्र से समझौता कर सकता है।

-1

बहुत सारे AJAX क्रॉस-डोमेन और समान मूल सुरक्षा नीति सामग्री वहां लिखी गई है, एक नज़र डालें। जहां तक ​​मुझे पता है, जॉन के प्रस्तावित केवल दो विकल्प हैं (सर्वर पक्ष पर प्रॉक्सी स्थापित करना):

1. डब्ल्यू 3 सी सीओआरएस मानक तकनीक और HTTP शीर्षलेख का उपयोग करना।

https://en.wikipedia.org/wiki/Cross-origin_resource_sharing

2. JSONP तंत्र।

https://en.wikipedia.org/wiki/JSONP

मैं सच में पता है कि यह वास्तविक समस्या आप अनुभव कर रहे है नहीं है, लेकिन मुझे आशा है कि यह आपके लिए अच्छा मदद की है।

संबंधित मुद्दे