ক্রোম: আনকাটড সিনট্যাক্স এরিয়ার: ইনপুটটির অপ্রত্যাশিত শেষ


176

গুগল ক্রোমে আমার পৃষ্ঠাটি লোড করার সময়, আমি কনসোলে একটি অস্পষ্ট ত্রুটি পেয়েছি:

আনকাচড সিনট্যাক্স এরিয়ার: ইনপুটটির অপ্রত্যাশিত শেষ

এর কারণ কী তা আমার কোনও ধারণা নেই। আমি কীভাবে এই ত্রুটিটি ডিবাগ করতে যাব?


2
কোনও নেটওয়ার্ক স্নিফায়ারে প্রতিক্রিয়া যাচাই করা আপনাকে ক্লু দিতে পারে। আমার অনুমান যে Content-lengthশিরোনামটি প্রতিক্রিয়াযুক্তের চেয়ে বেশি বাইট নির্দিষ্ট করে, বা সার্ভারটি কোনওভাবে অবৈধ এইচটিএমএল প্রেরণ করে।
tdammers

2
বেশিরভাগ সময় নিখোঁজ (জাভাস্ক্রিপ্ট)। আপনার ক্লাস এবং ফাংশন শেষ পরীক্ষা করুন। আপনার স্ক্রিপ্টের শেষে আরও একটি ক্লোজিং যুক্ত করার চেষ্টা করুন এবং আপনার কোডটি পুনরায় স্ব-ফর্ম্যাট করুন। যদি আপনার কোডটিতে কোনও অদ্ভুত শোধক থাকে তবে তার ঠিক আগে কোথাও সম্ভবত} নিখোঁজ হওয়া স্পটটি।
ওজি শান

ভুলভাবে জেএস লোড করার সময় আমার এই সমস্যাটি ছিল। আমি এটি যেমন লোড করেছি <script>https://example.com/a.js</script>এবং এটি হওয়া উচিত ছিল<script src="https://example.com/a.js"></script>
ড্যানিয়েল

আমি আজ গুগল পত্রকগুলিতে এই ত্রুটিটি পাচ্ছি। আমার অনুমান যে তাদের একটি জেএস ফাইল এত বড় যে এটি সম্পূর্ণরূপে লোড না করেই শেষ হয়ে যায়। বা তাদের অ্যাপ্লিকেশন সার্ভারগুলির মধ্যে একটিতে বাগ রয়েছে এবং জেএস ফাইলটি পুরোপুরি ডাউনলোড হওয়ার আগে http সংযোগটি বন্ধ করে দিচ্ছে।
টেডি

উত্তর:


227

এই বিশেষ ত্রুটিটি সম্পর্কে বিরক্তিকর একটি সত্য । বেশিরভাগ ক্ষেত্রে আপনার জাভাস্ক্রিপ্ট কোনওভাবে ভেঙে গেছে। উদাহরণস্বরূপ একটি }বা এর মতো কিছু অনুপস্থিত ।

প্রদত্ত উদাহরণ, এটি "ইনপুটটির অপ্রত্যাশিত শেষ "ও লাভ করবে:

eval('[{"test": 4}') // notice the missing ]

তবে সমস্যার মূল কারণটি মনে হয় যে অনুরোধ করা জেএসওএন ইউআরএলটির একটি সামগ্রী-প্রকার রয়েছে text/htmlযার ক্রোম দৃশ্যত HTML হিসাবে বিশ্লেষণ করার চেষ্টা করে যা এরপরে অন্তর্ভুক্ত চিত্রের ট্যাগগুলির কারণে ইনপুটটির অপ্রত্যাশিত পরিণতি হয় results পার্স।

সেট করার চেষ্টা সামগ্রী-প্রকার করার text/plainআমার মনে হয় এটা সমস্যা সমাধানের করা উচিত নয়।

তা সত্ত্বেও, ইনপুটটি অপ্রত্যাশিতভাবে ঠিক কোথায় শেষ হয়েছিল তা বলার বিষয়ে ভি 8 আরও ভাল কাজ করতে পারে ।


2
ঠিক আছে ধন্যবাদ আমি সমস্ত একসাথে জসন অনুরোধটি সরিয়ে দিয়েছি এবং ত্রুটিটি চলে গেছে আমার জেসন অনুরোধের সাথে ঠিক কী ভুল তা আমি এখনও বের করতে পারি নি। আমি ঠিক কখনই ডিবাগিং শুরু করব তা জানতাম না। যদি আমি জিজ্ঞাসা করতে পারি আপনি কীভাবে মূল কারণটি নির্ধারণ করেছেন
dlaurent86

2
এটি সম্ভবত সুস্পষ্ট নাও হতে পারে। মিনিমাইজারের দ্বারা ম্যাংলড হওয়ার কারণে আমি এই ত্রুটিটি মিনিফাইড জেএসে পেয়েছি, যখন আনমিনিফাইড জেএস পুরোপুরি আইনী এবং বৈধ ছিল। দুর্ভাগ্যক্রমে, ক্রোম কেবল সেই লাইনটি দেখায় যেখানে ত্রুটি দেখা দেয়, যা হ্রাস করা জেএসের জন্য সাধারণত সম্পূর্ণ ফাইল হয় ...
সেরিন

ইনপুট যেখানে শেষ হয়েছিল তা এতটা নয় (শেষের দিকে কিউজ হবে)। বরং, কী প্রত্যাশা করা হয়েছিল তা জেনে টনকে সহায়তা করবে।
অ্যান্ড্রুস

আমার লেজ সংরক্ষণ। আমি অস্পষ্টতায় ভীষণ বিরক্ত হচ্ছিলাম। ধন্যবাদ।
সাইপ্রাস 106

4
আমার একই ত্রুটি ছিল, কারণ আমি JSON.parse (পাঠ্য) ব্যবহার করছিলাম এবং পাঠ্যের মানটি খালি স্ট্রিং ছিল
A Khudairy

73

মজিলার জন্য ফায়ারব্যাগ ব্যবহার করে দেখুন - এটি নিখোঁজ হওয়ার অবস্থান প্রদর্শন করবে }

http://getfirebug.com/


12
ফায়ারব্যাগের দরকার নেই। ফায়ারফক্সের কনসোলটি আমাকে বলেছিল ঠিক কোন রেখাটি এবং কোন চরিত্রটি অনুপস্থিত ছিল
ডিলান ভ্যালাদ

1
ফায়ারফাগেরও দরকার পড়েনি। ফায়ারফক্স কনসোল ctrl+shift+iআপনাকে জানাবে।
বেনিয়ামিন ক্রাউজিয়ার

1
সতর্কতা, স্ক্রিপ্টটি যদি একক প্রচণ্ড রেখায় ন্যূনতম করা হয় তবে ফায়ারফক্সটি কয়েক মিনিট / ঘন্টা / বছর ধরে স্থির থাকতে আশা করে।
সেরিন

1
এই সিনট্যাক্স ত্রুটিগুলি সনাক্ত করার এটি এখন পর্যন্ত সবচেয়ে সহজ উপায়
বেনটঅনকোডিং

আমার godশ্বর, আপনাকে ধন্যবাদ। বোধ করি ক্রোম বিকাশকারী সরঞ্জামদানের ক্ষেত্রে ফায়ারফক্সের তুলনায় অনেক এগিয়ে। এটি আশ্চর্যজনক যে কীভাবে এটি এই ছোট জিনিসটি পেতে ব্যর্থ। আমাকে বড় মাথা ব্যাথা থেকে বাঁচিয়েছে!
যিশাইয় লি

33

অন্য একটি অনুরূপ প্রশ্নে আমার মামলা দেখুন :

আমার ক্ষেত্রে, আমি একটি খালি জেএসওন পার্স করার চেষ্টা করছিলাম:

JSON.parse(stringifiedJSON);

অন্য কথায়, যা ঘটেছিল তা নিম্নলিখিত:

JSON.parse("");

2
হ্যাঁ আমারও এটি ছিল! আপনি খালি স্ট্রিংয়ের পরিবর্তে "{}" সরবরাহ করে সহজেই সমাধান করতে পারেন
ক্রোনোকলি

1
আমি একটি ইউআরএল (যেমন স্থানীয় লোকস্ট: 8080 // মাইপথ / ব্ল্যাগ) এ ডাবল ফরোয়ার্ড স্ল্যাশের কারণে খালি জসন পাচ্ছি এবং সার্ভার এর জন্য একটি খালি প্রতিক্রিয়া ফিরিয়ে দিচ্ছে।
jpierson

1
আমি কেবল এই সমাধানটি নিশ্চিত করতে এখানে এসেছি।
Luís Assunção

10

আমি }জাভাস্ক্রিপ্ট কোডটিতে একটি বন্ধনী ব্রেস অক্ষর ( ) বাদ দিলে আমি এই ত্রুটিটি পেয়েছি । আপনার ধনুর্বন্ধনী সঠিকভাবে সুষম হয় তা পরীক্ষা করে দেখুন।


10

রেকর্ডের জন্য, যে কেউ এই ত্রুটির জন্য বিভিন্ন কারণ অনুসন্ধান করার চেষ্টা করছে। একটি খালি HTML5 ডেটা অ্যাট্রিবিউট

data-mydata = ''

ত্রুটি কারণও। আপনার ডেটা মান কখন নাল স্ট্রিং হয় তা পরীক্ষা করা উচিত এবং এ্যাট্রিবিউটটি মোটেও অন্তর্ভুক্ত করা উচিত নয়। এটি স্ক্রিপ্ট উত্পন্ন HTML এর সাথে বেশিরভাগ ক্ষেত্রে প্রাসঙ্গিক না বলে চলে যায়।


আপনি ছাড়া কখনও এটি বুঝতে পারে না। আমি ভিডিওজেএস ব্যবহার করছিলাম এবং আমি তাদের পৃষ্ঠা থেকে তাদের ভিডিও প্লেয়ারের জন্য এইচটিএমএল অনুলিপি করেছি। এটিতে আপনি ব্যবহার করতে পারেন এমন একটি ডেটা-অ্যাট্রিবিউট প্লেসহোল্ডার ছিল তবে আমি ছিলাম না। ভিডিওটি লোড হচ্ছে না এবং আমি যে ত্রুটিটির কথা বলছি তা পেয়ে যাচ্ছিলাম। মুছে ফেলার পরে data-setup='{"example_option":true}' সবকিছু দুর্দান্ত কাজ করেছে।
টাইলার বুচিয়া

1
@ ব্যবহারকারী 1002379, খুশি আমি সাহায্য করতে পারি।
DroidOS

8

আমার জন্য সমস্যাটি হ'ল আমি dataType: "json"একটি পোষ্ট অনুরোধের জন্য P .জ্যাক্স দিয়েছিলাম যা এইচটিটিপি 201 (তৈরি করা) প্রত্যাবর্তন করছে এবং কোনও অনুরোধ সংস্থার নয়। সমাধানটি কেবল সেই কী / মানটি সরিয়ে ফেলা হয়েছিল।


আমি একটি এজাক্স অনুরোধ (আপলোড) শুরু করেছি এবং এটি শেষ হওয়ার আগেই এটি বাতিল করে দিয়েছি এবং আমি এই ত্রুটি পেয়েছি।
ডাস্টিন পোয়েসান্ট


6

এই ত্রুটির আরেকটি কারণ: যদি আপনার এপিআই ইচ্ছাকৃতভাবে কোনও প্রতিক্রিয়ার বডি না দিয়ে সাড়া দেয় তবে 200 OKস্থিতি কোডের পরিবর্তে স্থিতি কোডের সাথে সাড়া দেয় 204 No Content। কিছু জাভাস্ক্রিপ্ট লাইব্রেরি অপ্রত্যাশিত বিষয়বস্তুর জন্য খুব ভাল প্রতিক্রিয়া জানাতে পারে যখন কোন বিষয়বস্তু নেই, তাই সঠিক স্থিতি কোড ব্যবহার করুন!


3

অবশ্যই একটি উন্মুক্ত বন্ধনী থাকবে যা ত্রুটির কারণ হয়েছিল।

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

উদাহরণ স্ক্রিনশট:

ফায়ারব্যাগ ত্রুটিটি হাইলাইট করে


2

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


1

আপনার জাভাস্ক্রিপ্ট কোডটি কোনও একক লাইনে সংক্ষিপ্ত করা হয়েছে এমন ক্ষেত্রে, এই ত্রুটির জন্য অন্য কারণটি আপনার মন্তব্যের //পরিবর্তে ব্যবহার করছে /**/

খারাপ ( আপনার ফাংশনটির জন্য //ক্লোজিং অন্তর্ভুক্ত করার পরে সমস্ত কিছু মন্তব্য করে })

function example() { //comment console.log('TEST'); }

ভাল (আপনার মন্তব্য আবদ্ধ)

function example() { /* comment */ console.log('TEST'); }

পরিশ্রমী, প্লাস, আপনার \ "দ্য-পাঠ্য \" ব্যবহার করা উচিত cast
বে

1

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


অ্যাডথিস ব্যবহার করে আমি
ইউআরএলগুলিতে

0

আমি / বিকেল টগল টিপতে যখন কৌনিক জাল - ইউআইবি-ডেটপিকার, এর জন্য ইউআই বুটস্ট্র্যাপ নির্দেশিকা ব্যবহার করে একই ধরণের সমস্যার মুখোমুখি হয়েছি।

(অজানা) এর জন্য ইভেন্ট হ্যান্ডলারটিতে ত্রুটি: সিনট্যাক্স এরিয়ার: জেএসএন ইনপুট কৌণিক টাইমপিকারের অপ্রত্যাশিত শেষ

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


0

যেহেতু এটি একটি অ্যাসিঙ্ক অপারেশন onreadystatechange, প্রতিক্রিয়া পাঠ্যক্রমে মানটি লোড হওয়ার আগেই ঘটতে পারে window.setTimeout(function () { JSON.parse(xhr.responseText); }, 1000); , ত্রুটিটি এখনও থেকে যায় কি না তা দেখার জন্য চেষ্টা করে দেখুন? BOL


0

আমি এই ত্রুটি ছিল এবং উপর পাহারা যোগ করে এটি সংশোধন করা হয়েছে readyStateএবং statusএখানে দেখানো:

var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
    if (this.readyState == 4 && this.status == 200) {
          // Your code here
   }
};

0

যদি আপনি অ্যাঙ্কর ট্যাগ এ ত্রুটি পেয়ে থাকেন তবে কেবল "অনক্লিক" কে "href" বা "href" এর সাথে "অনক্লিক" দিয়ে প্রতিস্থাপন করুন


0

অনুরোধে Acceptশিরোনামটি সেট করা application/jsonআমার পক্ষে কাজ করেছিল যখন আমি একই সমস্যার মুখোমুখি হই।


0

একটি খালি JSON পার্স করার চেষ্টা করা এই ত্রুটির কারণ হতে পারে।

আপনি যখন সার্ভার বা যে কোনও কিছু থেকে প্রতিক্রিয়া পান, এটি খালি না থাকলে প্রথমে চেক করুন। উদাহরণ স্বরূপ:

function parseJSON(response) {
    if (response.status === 204 || response.status === 205) {
        return null;
    }
    return response.json();
}

তারপরে আপনি সাথে আনতে পারেন:

fetch(url, options).then(parseJSON); 
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.