ক্রিপ্টিক "স্ক্রিপ্ট ত্রুটি।" Chrome এবং ফায়ারফক্সে জাভাস্ক্রিপ্টে প্রতিবেদন করা হয়েছে


199

আমার কাছে একটি স্ক্রিপ্ট রয়েছে যা আমার ওয়েবসাইটে জাভাস্ক্রিপ্ট ত্রুটিগুলি সনাক্ত করে এবং এগুলি প্রতিবেদনের জন্য আমার ব্যাকএন্ডে প্রেরণ করে। এটি সম্মুখীন হওয়া প্রথম ত্রুটি, অনুমিত রেখা নম্বর এবং সময়টির প্রতিবেদন করে।

ডক্টাইপ অন্তর্ভুক্ত করতে সম্পাদনা করুন:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en" xmlns:fb="http://www.facebook.com/2008/fbml">

...

<script type="text/javascript">
//<![CDATA[
// for debugging javascript!
(function(window){
    window.onerror = function(msg, url, ln) {
        //transform errors
        if (typeof(msg) === 'object' && msg.srcElement && msg.target) {
            if(msg.srcElement == '[object HTMLScriptElement]' && msg.target == '[object HTMLScriptElement]'){
                msg = 'Error loading script';
            }else{
                msg = 'Event Error - target:' + msg.target + ' srcElement:' + msg.srcElement;
            }
        }

        msg = msg.toString();

        //ignore errors
        if(msg.indexOf("Location.toString") > -1){
            return;
        }
        if(msg.indexOf("Error loading script") > -1){
            return;
        }

        //report errors
        window.onerror = function(){};
        (new Image()).src = "/jserror.php?msg=" + encodeURIComponent(msg) + "&url=" + encodeURIComponent(url || document.location.toString().replace(/#.*$/, "")) + "&ln=" + parseInt(ln || 0) + "&r=" + (+new Date());
    };
})(window);
//]]>
</script>

এই স্ক্রিপ্টের কারণে, আমি আমার সাইটে যে কোনও জাভাস্ক্রিপ্ট ত্রুটি ঘটছে তা সম্পর্কে তীব্র সচেতন। বৃহত্তম অপরাধীদের মধ্যে একটি হ'ল "স্ক্রিপ্ট ত্রুটি"। ক্রোম 10+ তে এবং লাইনে ফায়ারফক্স 3+। ইন্টারনেট এক্সপ্লোরারে এই ত্রুটিটি বিদ্যমান নেই (বা অন্য কিছু বলা যেতে পারে?)।

সংশোধন (5/23/2013): এই "স্ক্রিপ্ট ত্রুটি, লাইন 0" ত্রুটি এখন আই 7 এবং সম্ভবত আই-র অন্যান্য সংস্করণে প্রদর্শিত হচ্ছে। সম্ভবত এই ধরনের আচরণের অস্তিত্ব না থাকায় সাম্প্রতিক IE সুরক্ষা প্যাচের ফলাফল।

এই ত্রুটিটির অর্থ কী বা এর কারণ কী এমন কারও কি ধারণা আছে? এটি আমার সামগ্রিক পেইজ লোডগুলির প্রায় 0.25% এ ঘটে এবং রিপোর্ট করা ত্রুটির অর্ধেকটি উপস্থাপন করে।


আপনার ডকটাইপ কি? আপনি যদি কোনও এক্সএইচটিএমএল ডক্টাইপ ঘোষণা না করে থাকেন তবে আপনার সিডিএটিএ দরকার নেই, এটি কারণেই স্ক্রিপ্ট ত্রুটি রয়েছে।
জেমস

আমি সাহায্যের প্রশংসা করি ... ডক্টাইপ যুক্ত করেছেন: এক্সএইচটিএমএল। এছাড়াও, যদিও কেবল পৃষ্ঠা লোডগুলির 0.25% এ ঘটছে ... আমি মনে করি এটি আরও বিদেশী কিছু।
মাইক শেরভ

3
@ জাইপ: সবেমাত্র উল্লেখ করছি। এক্সএইচটিএমএল ডক্টাইপ এখনও HTML পার্সার। application/xhtml+xmlএক্সটিএমএল পার্সারে এটি চালনার জন্য আপনাকে সামগ্রী প্রেরণ করতে হবে (এক্সএইচটিএমএল স্পেসিফিকেশন বলে)। পুরো প্রচুর সামগ্রী রয়েছে যা দাবি করে এক্সএইচটিএমএল, তবে সাধারণ এইচটিএমএল ডক্টাইপ প্রেরণ করে। সামগ্রী নির্মাতারা কীভাবে ভুলভাবে এক্সএইচটিএমএল ব্যবহার করে, ব্রাউজারগুলি কেবল এক্সএমএল পার্সার ব্যবহার করার সিদ্ধান্ত নিয়েছে application/xhtml+xml(এটি সত্যিই কঠোর পার্সার)। Hixie.ch/advocacy/xhtml এবং webdevout.net/articles/beware-of-xhtml বলছেন কেন এক্সএইচটিএমএল সঙ্গে এইচটিএমএল পার্সার ব্যবহার করবেন না।
কনরাড বোরোস্কি

11
দীর্ঘশ্বাস ... godশ্বরের প্রতি ভালবাসার জন্য, যে কেউ এটি পড়ছেন, দয়া করে আপনার ত্রুটি বার্তাগুলি ঠিক কী ভুল হয়েছে তা ব্যাখ্যা করুন ! নিজের লেখার 30 সেকেন্ড চেষ্টা করে নিজেকে বাঁচিয়ে আপনি বিশ্বের মানব-বছরকে নষ্ট করছেন!
রোমান স্টারকভ

1
আপনি স্ক্রিপ্ট ত্রুটিগুলি লোড করার ক্ষেত্রে ত্রুটি উপেক্ষা করছেন। কেন? তারা এড়ানো নিরাপদ?
র‌্যাম্প্রি

উত্তর:


261

"স্ক্রিপ্ট ত্রুটি।" ফায়ারফক্স, সাফারি এবং ক্রোমে ঘটে যখন কোনও ব্যতিক্রম ব্রাউজারের একই-উত্স নীতি লঙ্ঘন করে - অর্থাত্ বর্তমান পৃষ্ঠার ডোমেন ব্যতীত অন্য কোনও ডোমেনে হোস্ট করা কোনও স্ক্রিপ্টে ত্রুটি দেখা দেয়।

বাহ্যিক ডোমেনগুলিতে তথ্য ফাঁস হওয়া থেকে স্ক্রিপ্টগুলি রোধ করার জন্য, এই আচরণটি ইচ্ছাকৃত। কেন এটি প্রয়োজনীয় তা উদাহরণের জন্য, দুর্ঘটনাক্রমে পরিদর্শন করার কল্পনা করুন evilsite.com, যা দিয়ে একটি পৃষ্ঠা পরিবেশন করে <script src="yourbank.com/index.html">। (হ্যাঁ, আমরা এই স্ক্রিপ্ট ট্যাগটি এইচটিএমএলে নির্দেশ করছি, জেএস নয়)। এটি স্ক্রিপ্ট ত্রুটির ফলস্বরূপ ঘটবে, তবে ত্রুটিটি আকর্ষণীয় কারণ এটি লগ ইন করা হয়েছে কি না তা আমাদের জানাতে পারে। আপনি লগ ইন থাকলে ত্রুটি হতে পারে 'Welcome Fred...' is undefined, আপনি না থাকলে এটি হতে পারে 'Please Login ...' is undefined। এই লাইন বরাবর কিছু।

যদি খারাপ 20 ওয়েবসাইট ডটকম শীর্ষ 20 বা তত্স ব্যাংকের প্রতিষ্ঠানের জন্য এটি করে, আপনি কোন ব্যাংকিং সাইটগুলি পরিদর্শন করেছেন সে সম্পর্কে তাদের খুব ভাল ধারণা থাকতে পারে এবং আরও অনেক লক্ষ্যবস্তু ফিশিং পৃষ্ঠা সরবরাহ করতে পারে। (এটি অবশ্যই একটি উদাহরণ, তবে এটি ব্যাখ্যা করে যে ব্রাউজারগুলি কোনও ডেটা ডোমেন সীমানা অতিক্রম করতে দেয় না কেন ))

আমি সাফারি, ক্রোম এবং ফায়ারফক্সের সর্বশেষতম সংস্করণগুলিতে এটি পরীক্ষা করেছি - তারা সকলেই এটি করে। আইই 9 এটি করে না - এটি এক্স-উত্স ব্যতিক্রমকে একই-উত্সের হিসাবে একই রকম আচরণ করে। (এবং অপেরা আক্রমণকে সমর্থন করে না))

ঘোড়াগুলির মুখ থেকে: ওয়েবকিট উত্স যা অনিয়ার () এ ব্যতিক্রম করার সময় উত্স পরীক্ষা করে । এবং ফায়ারফক্স উত্স যা পরীক্ষা করে

আপডেট (10/21/11) : ফায়ারফক্স বাগ যা এই সমস্যাটিকে সন্ধান করে তার মধ্যে ব্লগ পোস্টের একটি লিঙ্ক রয়েছে যা এই আচরণকে অনুপ্রাণিত করে।

আপডেট (12/2/14) : আপনি এখন কিছু ব্রাউজারগুলিতে স্ক্রিপ্ট ট্যাগগুলিতে একটি crossoriginবৈশিষ্ট্য নির্দিষ্ট করে এবং সার্ভারকে উপযুক্ত CORS HTTP প্রতিক্রিয়া শিরোনাম প্রেরণ করে সম্পূর্ণ ক্রস-ডোমেন ত্রুটি প্রতিবেদন সক্ষম করতে পারেন ।


3
এর জন্য ধন্যবাদ. আমি কিছুটা স্পষ্টতা চাই। আমি আমার পৃষ্ঠায় সর্বদা অন্তর্ভুক্ত স্ক্রিপ্টগুলি থেকে বিশদ ত্রুটির বার্তা দেখতে পাই see উদাহরণস্বরূপ, আমি যদি গুগলের সিডিএন থেকে জিকুয়েরি অন্তর্ভুক্ত করি এবং এটি আমার পৃষ্ঠায় কোনও অস্তিত্বের উপাদানটি ব্যবহার করতে ব্যবহার করি তবে আমি একটি অনারর পেয়েছি যা গুগলের সিডিএনকে নির্দেশ করে। আপনি কি "স্ক্রিপ্ট ত্রুটি" বলছেন? রিমোট স্ক্রিপ্ট ব্যতিক্রম ছুঁড়েছে কারণ ঘটছে?
মাইক শেরভ

150
আপনি কি ভাবতেন যে কারও বলার বুদ্ধি থাকতে হবে "একটি দূরবর্তী স্ক্রিপ্ট একটি ত্রুটি ফেলেছিল যা একই-উত্স নীতির কারণে লুকানো ছিল", আপনি কী ভ্রান্ত হয়েছে তা ভেবে ছেড়ে চলে গেলেন, তাই না ... ...
রোমান স্টারকভ

3
@ ব্রোফা কি এর অর্থ কি আমি যদি গুগলের সিডিএন ব্যবহার না করে আমার ডোমেনে জ্যাকেইরি হোস্ট করি তবে আমি আরও ভাল হয়ে যাব?
পল বিগগার

6
ছোট আপডেট। এটি স্থানীয়ভাবে ঘটে যখন কোনও পৃষ্ঠা ফাইল: // এর মাধ্যমে লোড করা হয় এবং স্ক্রিপ্টটি eval () এর মাধ্যমে চালিত হয়। গৌণ ব্যবহারের ক্ষেত্রে তবে এখনও :)
উইলেম মুল্ডার

6
কিছু তদন্তের পরে আমি লক্ষ্য করেছি যে Script Error.ব্যবহারকারী যদি সাফারি এক্সটেনশন ইনস্টল করে থাকেন (সম্ভবত ফায়ারফক্স প্লাগ-ইনগুলির ক্ষেত্রে এটি একই রকম) যা জাভাস্ক্রিপ্ট
কোডকে

49

ভবিষ্যতে এই প্রশ্নে হোঁচট খাচ্ছে তাদের জন্য একটি আপডেট: ব্রুফা উত্তরটির সাথে সঠিক এবং এটির জন্য কোনও কার্যকারিতা নেই।

স্পষ্টতই অন্যরা এই সীমাবদ্ধতায় পড়ে গিয়েছিল এবং ফায়ারফক্স: বাগ 69301 এবং ওয়েবকিট: বাগ 70574 এর জন্য কিছু সংশোধন করার অনুরোধকারী কিছু বাগ ফাইল করা হয়েছিল

সুসংবাদটি হ'ল ফায়ারফক্স ১৩-এর মুক্তির সাথে ফায়ারফক্সের জন্য বাগটি সমাধান করা হয়েছে you আপনি এটি ব্যবহার করুন:

<script src="http://somremotesite.example/script.js" crossorigin>

crossoriginএর সমতুল্য crossorigin=anonymousএবং শংসাপত্র না প্রেরণে স্ক্রিপ্টটি একটি CORS আনতে ব্রাউজারকে বলে ।

আপনাকে অবশ্যই নিশ্চিত করতে হবে যে স্ক্রিপ্টটি কোনও Access-Control-Allow-OriginHTTP শিরোলেখের সাথে প্রেরণ করা হয়েছে যা অনুরোধকারী ডোমেনের সাথে মেলে যেমন,

Access-Control-Allow-Origin: http://myhomesite.example
Access-Control-Allow-Origin: *

অন্যথায় ব্রাউজারটি স্ক্রিপ্ট লোড করা বাতিল করবে

অ্যাপাচি এর জন্য:

Header set Access-Control-Allow-Origin "*"

(এবং অন্যান্য ওয়েব সার্ভারের জন্য CORS উদাহরণগুলি দেখুন ))

আপনি যদি পিএইচপি-তে স্ক্রিপ্টগুলি প্রেরণ করছেন:

header('Access-Control-Allow-Origin', 'http://myhomesite.example');

আমি এটি পরীক্ষা করেছি এবং এটি প্রত্যাশার মতো কাজ করে। স্ক্রিপ্ট.জেএস থেকে সমস্ত ত্রুটি window.onerrorবার্তা, ফাইল এবং লাইন বিশদ সহ হ্যান্ডলার দ্বারা ধরা পড়বে ।

ওয়েবকিট বাগটি এখনও ঠিক করা হয়নি, তবে একটি প্যাচ প্রস্তাবিত হয়েছে (এবং একই সমাধান ব্যবহার করে)। আশা করি শিগগিরই এই ফিক্সটি প্রকাশিত হবে।

CORS সম্পর্কে আরও তথ্য এখানে: http://enable-cors.org/


2
ভাল সংক্ষিপ্তসার: blog.errorception.com/2012/12/…
সাম

1
ওয়েবকিট। যদি আপনি এটির অর্থ বোঝাতে চান তবে মনে হচ্ছে এটি এখনই সমাধান হয়েছে: bugs.webkit.org/show_bug.cgi?id=70574
ক্রিক

3
ধরা যাক আমরা mysite.com/index.php এ জেএস ত্রুটিগুলি পর্যবেক্ষণ করতে চাই, যাতে কোনও বাহ্যিক পক্ষের (যেমন একটি API সরবরাহকারীর সার্ভার apiprovider.com/api.js) একটি জেএস ফাইল অন্তর্ভুক্ত রয়েছে; এক্ষেত্রে আমাদের সেই সার্ভারে অ্যাক্সেস নেই তাই আমরা "অ্যাক্সেস-কন্ট্রোল-অরিজিন-অরিজিন" শিরোনামটি যুক্ত করতে পারি না। Api.js থেকে উদ্ভূত ত্রুটি বার্তাগুলি পাওয়ার কোনও উপায় আছে কি?
ইউজিনিও

23

এই এক খুঁজে বের করতে বেশ খানিকটা সময় নিয়েছিল।

এটি চেষ্টা করার জন্য এবং এটি সমাধান করার জন্য আমরা পুরো ডকুমেন্টের বডিটি অ্যাজাক্সের মাধ্যমে আমাদের সার্ভারে ফেরত পাঠানোর মতো কাজগুলি সহ চেষ্টা করার এবং সমাধান করার জন্য একগুচ্ছ স্টাফ করেছি।

"স্ক্রিপ্ট ত্রুটি" কী কারণে ঘটে তা আমি এখনও নিশ্চিত নই। (বিটিডাব্লু পিরিয়ডের সাথে এটি আমাদের অ্যাজাক্স লগারে এটি প্রদর্শিত হয়) ফায়ারফক্সে, তবে ক্রোমে আমরা এটিকে সংকুচিত করতে সক্ষম হয়েছি ...

ড্রাম রোল...

গুগল ক্রোমের স্বয়ংক্রিয় অনুবাদ বৈশিষ্ট্য।

অনেক ইংরেজী ভাষী লোকেরা সম্ভবত এই বৈশিষ্ট্যটি সম্পর্কে জানেন না, তবে এটি পরীক্ষা করার জন্য, অনুমান করি ক্রোম ব্যবহার করে একটি অ-ইংরাজী সাইট পরিদর্শন করা হয়েছে। বা আরও ভাল, আপনি যদি ক্রোম বিকল্পগুলির মাধ্যমে খনন করেন তবে ব্রাউজারের ভাষা পরিবর্তনের জন্য একটি স্পট রয়েছে। এটিকে অ-ইংরেজী কিছুতে পরিবর্তন করুন, ব্রাউজারটি পুনরায় চালু করুন এবং একটি ইংলিশ সাইট দেখুন।

আপনি কি ক্রোম আপনার জন্য পৃষ্ঠাটি অনুবাদ করতে চান তা জিজ্ঞাসা করে শীর্ষে বারটি পাওয়া উচিত।

আমাদের ক্ষেত্রে যাইহোক, অনুবাদক সমস্যাটি সৃষ্টি করছিল কারণ এটি আপনার নথির বুকের মধ্যে একটি স্ক্রিপ্ট ট্যাগ ইনজেক্ট করে এবং (এখানে অনুমান করে) গুগলের সার্ভারগুলিতে লিখিত সামগ্রী প্রেরণ এবং এটি অনুবাদ করার জন্য এটি পেতে কিছু ধরণের জেএস-ভিত্তিক সিস্টেম ব্যবহার করে।

কনসোলে ত্রুটিটি নির্বিঘ্নিত কিছু হলেও, উইন্ডোতে অনুলিপি পাঠানো হচ্ছে এমন বার্তাটি ছিল "স্ক্রিপ্ট ত্রুটি"।

যাইহোক, একটি নিরাময় আছে।

http://googlewebmastercentral.blogspot.com/2007/12/answering-more-popular-picks-meta-tags.html

<meta name="google" content="notranslate"/>

এটি 2 টি কাজ করবে (যতদূর আমরা জানি, সম্ভবত আরও বেশি?):

ক) ক্রোমে পপআপ করা থেকে অনুবাদ বারটি অক্ষম করুন।

খ) অনুবাদ.google.com.com এর মাধ্যমে পৃষ্ঠাটির অনুবাদ অক্ষম করুন।

আমাদের পরিস্থিতিতে যাইহোক, এটি এই "স্ক্রিপ্ট ত্রুটি" এর একটি টন সমাধান করেছে। আমরা অভিজ্ঞতা ছিল।

এই পোস্টে বানান ভুলগুলি ক্ষমা করুন, আমি ক্রোমে এটি লেখার জন্য এখনও একটি অ-ইংলিশ মোডে আছি এবং স্পেল চেকারটি ইংরেজিতে সেট করা নেই;) ফিরে যাওয়ার সময়।

উপভোগ করুন!


4
এর প্রত্যক্ষ কারণ সম্ভবতঃ অনুবাদক স্ক্রিপ্টটি অন্য কোনও ডোমেন থেকে তখন ওয়েব পৃষ্ঠায় চালিত হয়েছিল, এবং onerror(অন্তত ফায়ারফক্সে) এই জাতীয় ক্ষেত্রে "স্ক্রিপ্ট ত্রুটি" বলেছিল।
টিজিআর

10

কম% এর কারণে, আপনি ধরে নিতে পারেন যে তারা সাধারণ ব্যবহারকারী নয়। সম্ভবত ব্যবহারকারীদের স্ক্রিপ্ট, বুকমার্কলেট বা এমনকি আপনার ওয়েবসাইটে কনসোলটি নিয়ে কেবল বিশৃঙ্খলাযুক্ত ব্যবহারকারীরা। এমন কোনও পৃষ্ঠার যেখানে এটি ঘটে তার পুরো HTML থাকা এই তত্ত্বটি পরীক্ষা করতে সহায়তা করতে পারে। পাশাপাশি সম্পূর্ণ ত্রুটি। এটি আপনাকে একটি ইউআরএল দেওয়া উচিত, এটি কি সর্বদা একই থাকে? লাইনটি কি আসলে 0 বা কেবল অপরিবর্তিত?

আমি মনে করি না যে আপনার মধ্যে অনিররকে ডিফল্ট মান নির্ধারণ করা ভাল ধারণা এবং 0 টি সম্ভবত parseInt(ln || 0)তখন থেকেই আসে যখন ত্রুটিটি সত্যই পৃষ্ঠাটিতে নেই (উপরের উদাহরণগুলি দেখুন)।

এই ত্রুটিগুলি উপেক্ষা করার জন্য জাভাস্ক্রিপ্টে লাইনটি জানা আছে কিনা তা দেখার জন্য একটি যুক্ত করা (কারণ তারা সম্ভবত আপনার নিজের কোড থেকে আসে না) বা সার্ভার-সাইড কোডে আলাদাভাবে যত্ন নেওয়ার জন্য, ইমো, আরও ভাল হবে ।

=== সম্পাদনা === পেয়েছেন: http://www.xavierm02.net/AZE/ ইউজার.জেএস ফাইল ইনস্টল করুন (আমি এটি ক্রোমে করেছিলাম তবে এটি ফায়ারফক্সেও কাজ করা উচিত)। তারপরে একই ব্রাউজারে এইচটিএমএল পৃষ্ঠাটি খুলুন। এটি আপনাকে ত্রুটিটি দেখিয়ে দেবে (আমি কেবল সার্ভারে প্রতিবেদনের সেই অন্তর্নিহিত পরিবর্তন করেছি, এটি পৃষ্ঠায় এটি লিখেছে)। লাইন নম্বর হিসাবে 0 সহ।


URL টি আমার সাইটের পৃষ্ঠাগুলির মাঝে সমানভাবে বিতরণ করা হচ্ছে। আমি এফএফ এবং ক্রোম বিবেচনা করে বুকমার্কলেট বা এমনকি এক্সটেনশন বা থিমগুলিও অনুমান করছি। যাইহোক, আমি নিরাপদে উপেক্ষা করার আগে এই ত্রুটি বার্তাকে ঠিক ত্রুটিযুক্ত করতে সক্ষম হতে চাই।
মাইক শেরভ

আপনার লাইনটি এর সাথে প্রতিস্থাপন করুন (new Image()).src = "/jserror.php?msg=" + encodeURIComponent(msg) + "&url=" + encodeURIComponent(url) + "&ln=" + parseInt(ln) + "&r=" + (+new Date());এবং আপনি সম্ভবত কোনও url দেখতে পাবেন না (কারণ এটি কোনও এক্সটেনশন বা স্থানীয় কিছু যাতে ব্রাউজার আপনাকে দেখায় না) এবং কোনও লাইন নম্বর নেই।
xavierm02

এবং বিটিডব্লিউ, আপনার জেএসের পরিবর্তে আপনার সার্ভারের সাথে টাইমস্ট্যাম্পটি পাওয়া উচিত (এবং এমনকি টাইমস্ট্যাম্পের পরিবর্তে কেবলমাত্র সংস্করণ পাওয়াও)।
xavierm02

1
প্রকৃতপক্ষে, জেএসকে কেবল কাঁচা ডেটা প্রেরণ করা উচিত এবং পিএইচপি উচিত লোড ত্রুটিগুলি উপেক্ষা করার বিষয়ে আরও যত্ন নেওয়া উচিত।
xavierm02

আমি জেএস সাইডে কিছু প্রক্রিয়াজাতকরণ করি কারণ আমি কেবল প্রথম প্রাসঙ্গিক ত্রুটিটিই জানাতে চাই, তাই আমি যদি সত্যিকারের ত্রুটি আসার পরে অনারার ফাংশনটি আবার কিছুই না দিয়ে থাকি This এটি আমার সার্ভারটি ডিডস করা থেকে লুপগুলিতে ঘটে যাওয়া ত্রুটিগুলিও প্রতিরোধ করে ।
মাইক শেরভ

3

আমার অনুরূপ সমস্যা ছিল: আমার স্ক্রিপ্টগুলি একটি সাবডোমেন দ্বারা পরিবেশন করা হয় এবং একই উত্সের সীমাবদ্ধতায় পড়ে। তবে, আমি এর দ্বারা সমাধান করেছি:

1) প্রতিটি স্ক্রিপ্ট ট্যাগ এর মতো যুক্ত করা:

<script type="text/javascript" src="http://subdomain.mydomain.tld" crossorigin="*.mydomain.tld" />

2) প্রতিটি ভোস্টের ভিতরে নিম্নলিখিতটি যুক্ত করে অ্যাপাচি httpd.conf সংশোধন করুন (আপনার অবশ্যই মোড_হেডারগুলি সক্ষম করতে হবে):

<IfModule mod_headers.c>
Header add Access-Control-Allow-Origin "*.mydomain.tld"
</IfModule>

আশাকরি এটা সাহায্য করবে ...

সম্পাদনা

আমার সার্ভারের একটিতে আমি প্রতিস্থাপন না করে এই কার্যকরী করতে সক্ষম হইনি

*.mydomain.tld

দ্বারা

*

সম্ভাব্য * প্রসারিত তথ্য ফিশ করার অনুমতি দিয়ে ত্রুটিগুলি সম্পর্কে সচেতন হন। সিওআরএস, একই-উত্স, আইএমজি ও ফন্ট, সিডিএন সম্পর্কিত ডকুমেন্টেশন উপলব্ধ তবে স্ক্রিপ্ট ট্যাগ ক্রসরিগিন সম্পর্কিত বিশদটি খুব কম পাওয়া যায়।


1
"* .mydomain.tld" crossorigin অ্যাট্রিবিউট জন্য একটি বৈধ মান নয় developer.mozilla.org/en-US/docs/Web/HTML/...
icenac

1

এইচটিএমএল এবং জাভাস্ক্রিপ্ট উভয়ই লোড করার সময় ক্রোমে, আমি "স্ক্রিপ্ট ত্রুটি" (লাইন 0 তে) পাই file://। ফায়ারফক্সে এটি ঘটে না। সম্ভবত ক্রোমের অত্যধিক জ্বলন্ত একই-মূল সুরক্ষা।

HTTP- র মাধ্যমে একই HTML এবং জাভাস্ক্রিপ্ট লোড করার সময় সমস্ত কিছু ভাল।


1

নীচে সম্পর্কে কিভাবে। স্ক্রিপ্ট ত্রুটিটি জাভাস্ক্রিপ্টের মাধ্যমে উপলভ্য নয় সুতরাং কেবলমাত্র সেই নির্দিষ্ট কেসটিকে আলাদা করে রাখুন এবং যতটা সম্ভব আপনি এটি পরিচালনা করতে পারেন।

window.onerror = function (msg, url, lineNo, columnNo, error) {
    var string = msg.toLowerCase();
    var substring = "script error";
    if (string.indexOf(substring) > -1){
        alert('Script Error: See Browser Console for Detail');
    } else {
        alert(msg, url, lineNo, columnNo, error);
    }
  return false;
};

আপনি এটিকে কর্মে কিভাবে লগ করেন?
কমনসেন্সকোড

আপনি কি বলছেন যে ব্রাউজার কনসোলে বিশদ রয়েছে, তবে অনারর নেই?
মাইকেল ফ্রেইজিম


0

আইওএসে ক্রোম এবং ফায়ারফক্স উভয়ই সাফারি ওয়েবভিউয়ের উপর ভিত্তি করে তবে লোড হওয়া প্রতিটি পৃষ্ঠায় কাস্টম স্ক্রিপ্টগুলির একটি গোছা .োকান। যদি এই স্ক্রিপ্টগুলির কোনওটিতে কিছু ভুল হয়ে যায়, তবে এটিরও রিপোর্ট হয়ে যায় Script error on line 0। (ব্রাউজার scোকানো স্ক্রিপ্টগুলি ক্রস উত্স হিসাবেও গণনা করা হয়)

যেহেতু আমি এই অন্যান্য এসও থ্রেডে ট্র্যাক করে ডকুমেন্ট করেছি এবং আইওএসের ক্রোম এবং ফায়ারফক্স উভয়েরই তাদের কাস্টম স্ক্রিপ্টগুলিতে এসভিজি উপাদানগুলি সঠিকভাবে পরিচালনা করছে issues সুতরাং এই থ্রেডে অন্য সমস্ত জবাব ছাড়াও: আপনি যদি নিজের পৃষ্ঠায় ট্যাগগুলির মধ্যে এসভিজি উপাদান এবং <a>ট্যাগ ব্যবহার করেন তবে এটি আইওএস ক্রোম এবং আইওএস ফায়ারফক্সে প্রতিবেদন করা <svg>হতে পারে Script errors


-1

আমি আপনাকে সাফারি (ওয়েবকিট) এ আমার জন্য কী স্থির করেছিলাম তা বলব: আমি যদি জেএস কলব্যাক রুটিনটি আসলে পৃষ্ঠায় রাখি তবে আমি সম্পূর্ণ তথ্য পাই। যদি আমি এটি কোনও ট্যাগের মাধ্যমে .js ফাইলে অন্তর্ভুক্ত করি তবে আমি কেবল "স্ক্রিপ্ট ত্রুটি" ত্রুটি (কোনও লিনেনবার নয়, ইত্যাদি) পেয়েছি।

সম্ভবত এটি ব্রোফা যা বলেছিল তার সাথে সম্পর্কিত।

আনভ্য, সুতরাং এখন পৃষ্ঠাতে আমার একটি ছোট কলব্যাক রয়েছে এবং তারপরে পৃষ্ঠাটির বাইরে থাকা বাকী ফাইলটি।


-2

আমি কিছুটা অনুসন্ধান করেছি এবং এটি "স্ক্রিপ্ট ত্রুটি" এর অর্থ এটি অনুসন্ধান করতে বলা হয়েছিল এমন কোনও ফাইল লোড করতে সমস্যা হয়েছে। এটি ক্লায়েন্টের পক্ষ থেকে ক্যাচিংয়ের সমস্যা হতে পারে, বা ওভারলোডিংয়ের কারণে এটি সার্ভারের সমস্যা হতে পারে।

এটি সম্ভবত এরকম কোনও কারণে ঘটেছিল যেখানে স্ক্রিপ্টটি নিজেই ফাইল হ'ল এটি লোড করতে পারে না, সুতরাং লাইন 0-এ ঘটে the

<script type="text/javascript" src="somescript.js"></script>

ভাল চিন্তাভাবনা, তবে কোনও স্ক্রিপ্ট লোড হতে ব্যর্থ হলে আমরা স্পষ্টতই এড়িয়ে চলেছি। আমরা সেই ত্রুটিটি বিশেষভাবে সনাক্ত করেছি এবং এটিকে এড়িয়ে চলেছি।
মাইক শেরভ 6'11

1
কোনও স্ক্রিপ্ট লোড করতে ব্যর্থ হলে আপনি কীভাবে সনাক্ত করতে পারেন? আমার মনে আছে এক পর্যায়ে এ নিয়ে সমস্যা হচ্ছে। script.onerrorকিছু ব্রাউজারে হারিয়ে যাওয়া স্ক্রিপ্টগুলির জন্য বরখাস্ত হচ্ছিল না।
চার্লি কিলিয়ান

"উত্স ত্রুটি।" (লিটল-ই) ওয়েবকিট এবং এফএফ উভয় উত্সেই উপস্থিত হয়। আমার উত্তর উপরে দেখুন। fwiw।
ব্রুফা

-3

আমি অভিজ্ঞ

পান্ডুলিপিতে ভুল. লাইন 0

গ্রাহক ব্রাউজারগুলিতে ত্রুটি দেখা দিলে আমাদের সার্ভারে কিছু সময়ের জন্য ত্রুটিগুলি রিপোর্ট করা হচ্ছে। গতকাল প্রথমবারের জন্য ( "use strict";আমাদের জাভাস্ক্রিপ্টে প্রবর্তন করার পরে ) আমি উইন্ডোজ Saf এ সাফারি এবং ক্রোমে এই সমস্যাটির প্রতিলিপি করতে সক্ষম হয়েছি alert সতর্কতার সাথে আমাদের কোডটি লিটার করার পরে () বিবৃতি দিয়ে আমি এই ত্রুটিটি একটি অনির্ধারিত ভেরিয়েবলের ব্যবহার করে সনাক্ত করেছি! যেমন xx = 123;যেখানে xx একটি varবিবৃতি দিয়ে সংজ্ঞায়িত করা হয় না ।

সাফারি এই হিসাবে রিপোর্ট করেছেন

রেফারেন্স এরিয়ার: কঠোর মোড বৈশ্বিক সম্পত্তি 'xx' এর অন্তর্নিহিত তৈরি নিষিদ্ধ করে

ওয়েব পরিদর্শকের মধ্যে, তবে উইন্ডো.অনরারের ফাংশনটি সনাক্ত করা হচ্ছে was

পান্ডুলিপিতে ভুল. লাইন 0


-11

ফায়ারফক্সের সোর্স কোড গ্রিপিংয়ের মাধ্যমে জানা যায় যে নেই "Script Error."। সুতরাং, এটি সম্ভবত খুব সম্ভবত আপনার সাইটের কোনও স্ক্রিপ্ট এর মতো একটি অকাট্য ত্রুটি নিক্ষেপ করছে:

throw new Error('Script Error.');

সম্ভবত এই বিবৃতিটি কেবল ফায়ারফক্স এবং ক্রোমে পৌঁছেছে।

যদিও লাইন নম্বর নেই কেন তা নিশ্চিত নয়। কিছু eval()সমস্যা হতে পারে ?


1
আপনি যেমন প্রস্তাব করেছিলেন ঠিক তেমনই নিক্ষেপ করার চেষ্টা করেছি। এটি "স্ক্রিপ্ট ত্রুটি" প্রতিবেদন করে না। এটি রিপোর্ট করেছে "ছুঁড়ে দেওয়া ব্যতিক্রম ধরা হয়নি: স্ক্রিপ্ট ত্রুটি"। ভাল চিন্তা যদিও।
মাইক শেরভ

এটি ব্যবহারকারীর দ্বারা ইনস্টল করা একটি এক্সটেনশান হতে পারে যা ত্রুটি সৃষ্টি করছে।
চার্লি কিলিয়ান

1
কোনভাবেই না. আপনি যদি সঠিক প্লেসে সন্ধান করেন তবে আপনি সমস্ত স্ক্রিপ্টে "স্ক্রিপ্ট ত্রুটি" দেখতে পাবেন।
অমলগোভিনাস

2
আহ, না। এটি আসলে "স্ক্রিপ্ট ত্রুটি"। একটি ছোট "ই" দিয়ে। এজন্য আমি সোর্স কোডে এটি খুঁজে পাইনি।
ব্যবহারকারী 123444555621
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.