ক্রোম ভুল মাইম টাইপের কারণে একটি এজেএক্স স্ক্রিপ্ট সম্পাদন করতে অস্বীকার করেছে


146

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

'*' থেকে স্ক্রিপ্ট কার্যকর করতে অস্বীকৃতি জানায় কারণ এর মাইম টাইম ('অ্যাপ্লিকেশন / জেসসন') কার্যকর করা যায় না এবং কঠোর এমআইএমআই টাইপ চেকিং সক্ষম করা হয়।

অনুরোধটি এখানে:

$.ajax({
    url: "http://some_url/test.json?callback=?",
    type: "GET",
    dataType: 'json',
    cache: true,
    success: function (data, status, error) {
      console.log('success', data);
    },
    error: function (data, status, error) {
      console.log('error', data, status, error);
    }
});

কারও কি এর জন্য কার্যনির্বাহী কাজ রয়েছে?


2
তো, এই রিসোর্সটি কী? একটি JSONP স্ক্রিপ্ট, বা একটি JSON ফাইল? এর মাইম টাইপ কি এর সাথে মেলে? দৃশ্যত না. কোনও কাজের জন্য প্রয়োজন নেই, কেবল এটি ঠিক করুন।
বার্গি

কলব্যাক অপসারণ এবং ডেটা টাইপ জসোনপ ব্যবহার করা সমস্যার সমাধান করে না
পল নেলিগান

2
আমি বোঝাতে চাইছি, সার্ভারের প্রতিক্রিয়াটি ঠিক করুন ।
বার্গি

5
@ বেরগি: সার্ভারটি যদি ওপি'র নিয়ন্ত্রণের বাইরে থাকে তবে কী হবে? হতে পারে তিনি লিংকডইনের মতো একটি বাহ্যিক এপিআই ব্যবহার করার চেষ্টা করছেন ।
ড্যান ড্যাসক্লেস্কু

2
@ ড্যানডাসকলেস্কু: তার এটিকে একটি বাগ হিসাবে রিপোর্ট করা উচিত, কারণ এটি এপিআইকে ব্যবহারযোগ্য করে তোলে না। এটি স্থির হওয়ার অপেক্ষার সময়, তিনি এমন একটি প্রক্সি ব্যবহার করতে পারেন যা মাইম প্রকার বা সামগ্রী পরিবর্তন করে।
বেরগি

উত্তর:


70

কলব্যাক যুক্তি যুক্ত করে আপনি jQuery কে বলছেন যে আপনি XMLHttpRequest ব্যবহার করে JSON এর জন্য একটি অনুরোধের পরিবর্তে স্ক্রিপ্ট উপাদান ব্যবহার করে JSONP এর জন্য একটি অনুরোধ করতে চান।

জেএসএনপি জেএসএন নয়। এটি একটি জাভাস্ক্রিপ্ট প্রোগ্রাম।

আপনার সার্ভারটি পরিবর্তন করুন যাতে এটি JSONP এর জন্য সঠিক মাইমে টাইপের আউটপুট দেয় application/javascript

(আপনি যখন সেখানে থাকছেন তখন jQuery বলা বন্ধ করুন যে আপনি জেএসওএনকে যেমন বিপরীত হিসাবে প্রত্যাশা করছেন dataType: 'jsonp':)।


1
আমাকে দুটি সাইটের মধ্যে অজ্যাক্স ব্যবহার করতে হবে। আপনি "আপনার সার্ভার পরিবর্তন করুন যাতে এটি JSONP- র জন্য অ্যাপ্লিকেশন / জাভাস্ক্রিপ্ট যা সঠিক মাইমে টাইপ আউটপুট" সেট করতে আপনি যে বিষয়ে কথা বলছেন সে সম্পর্কে আমাকে গাইড করুন। কীভাবে করবেন
তাইমুর চাঙ্গাইজ

@ তাইমুর চ্যাঙ্গাইজ - আমি আপনাকে এটি বলতে পারি না। আপনি যদি স্ট্যাটিক ফাইলগুলি তৈরি করে থাকেন তবে এটি আপনি যে সার্ভারটি ব্যবহার করছেন তার উপর নির্ভর করে। আপনি যদি গতিশীলভাবে সামগ্রীটি তৈরি করে থাকেন তবে এটি আপনি যে প্রোগ্রামিং ভাষা ব্যবহার করছেন তা (এবং সম্ভবত ফ্রেমওয়ার্ক) এর উপর নির্ভর করে। এমন একটি প্রশ্ন জিজ্ঞাসা করার চেষ্টা করুন যা আপনার এতদূর পর্যন্ত এবং ঠিক কোথায় আটকে আছে তার বর্ণনা দেয়।
কোয়ান্টিন

ধন্যবাদ, বন্ধু. বিটিডব্লিউ আমি বিষয়টি বের করেছিলাম। আমি গতিশীল ফাইলগুলি ব্যবহার করছিলাম
তাইফুর চাঙ্গাইজ

20
"আপনি যদি লিঙ্কডইন এর মতো বাহ্যিক এপিআই ব্যবহার করার চেষ্টা করছেন তবে" আপনার সার্ভারটি পরিবর্তন করুন "কাজ করে না ।
ড্যান ড্যাসক্লেস্কু

1
@ কুইন্টিন যেহেতু প্রশ্নগুলি অন্যদের পক্ষে সহায়ক বলে মনে করা হয়, কেবল ওপি নয় It গুগল আমাকে এখানে নির্দেশ করেছে এবং এটি আমার ক্ষেত্রে সহায়তা করে না
হুয়ান মেন্ডেস

56

যদি আপনার প্রক্সি সার্ভার বা ধারকটি .js ফাইলটি পরিবেশন করার সময় নিম্নলিখিত শিরোনাম যুক্ত করে, এটি ক্রোমের মতো কিছু ব্রাউজারগুলিকে MIME প্রকারের কঠোর চেক করতে বাধ্য করবে:

X-Content-Type-Options: nosniff

ক্রোমকে MIME চেক সম্পাদন করতে প্রতিরোধ করতে এই শিরোলেখটি সরান।


14
ওয়েব অ্যাপ্লিকেশনগুলিতে পরিবেশিত সামগ্রীর সামগ্রীর ধরণের শিরোনাম সরবরাহ না করা একটি খারাপ অনুশীলন। সার্ভার-সাইড থেকে X-Content-Type-Options: nosniffহেড স্নিফিং এড়ানো ( শিরোনাম ব্যবহার করে ) সামগ্রী-স্নিফিং আক্রমণ প্রতিরোধের জন্য একটি ভাল বিকল্প।
অ্যান্ড্রেস

সুরক্ষা নিরীক্ষণের অংশ হিসাবে আমাকে এটি যুক্ত করতে হয়েছিল - এখন আমি কী করব জানি না !! :-(
জেমস পলুস

11

এফওয়াইআই, আমি ক্রোম কনসোল থেকে একই ত্রুটি পেয়েছি। আমি আমার AJAX ফাংশন ভেবেছিলাম এটা ঘটাচ্ছে, কিন্তু আমি আমার minified স্ক্রিপ্ট uncommented /javascripts/ajax-vanilla.min.jsকরতে /javascripts/ajax-vanilla.js। কিন্তু বাস্তবে উত্স ফাইলটি ছিল /javascripts/src/ajax-vanilla.js। সুতরাং Chrome এ আপনি ফাইলটি খুঁজে পাওয়া না গেলেও আপনি খারাপ MIME টাইপ ত্রুটি পেয়ে যাচ্ছেন। এই ক্ষেত্রে, ত্রুটি বার্তাটি text/plainখারাপ মাইম টাইম হিসাবে বর্ণনা করা হয়েছে ।


1
আপনাকে অনেক ধন্যবাদ! এটি আমার সমস্যাও ছিল। এটি ভুল ডিরেক্টরিতে ছিল।
এলিসান

2
তুমি আমাকে আজ ১ ঘন্টা বাঁচিয়েছ! ধন্যবাদ
বেটো আভিগা

1

আমি কাস্টম 404 ত্রুটি পৃষ্ঠা সহ আইআইএস 7.0 ব্যবহার করে এই ত্রুটির মুখোমুখি হয়েছি, যদিও আমার সন্দেহ হয় যে এটি কোনও 404 পৃষ্ঠাতে ঘটবে। সার্ভারটি একটি পাঠ্য / এইচটিএমএল মাইম টাইপ সহ একটি এইচটিএমএল 404 প্রতিক্রিয়া ফিরিয়েছে যা কার্যকরভাবে কার্যকর করা যায়নি।


আমাদের অনুরূপ সমস্যা ছিল, প্রত্যাবর্তিত সামগ্রীটি 302 ছিল (কারণ ব্যবহারকারী অরক্ষিত হয়ে পড়েছিলেন) এবং এতে কোনও বিষয়বস্তুর ধরণ ছিল না -> অ-এক্সিকিউটেবল।
প্যাসি সাভোলাইনেন

1

রেকর্ড এবং গুগল অনুসন্ধান ব্যবহারকারীদের জন্য , আপনি যদি একটি .NET কোর বিকাশকারী হন তবে আপনাকে অবশ্যই কন্টেন্টের ধরণগুলি ম্যানুয়ালি সেট করতে হবে, কারণ তাদের ডিফল্ট মান নাল বা খালি রয়েছে:

var provider = new FileExtensionContentTypeProvider();
app.UseStaticFiles(new StaticFileOptions
{
    ContentTypeProvider = provider
});

0

আমার ক্ষেত্রে, আমি ব্যবহার করি

$.getJSON(url, function(json) { ... });

অনুরোধটি করতে (ফ্লিকারের এপিআইতে), এবং আমি একই MIME ত্রুটি পেয়েছি। নীচের কোডটি যুক্ত করে উপরে বর্ণিত উত্তরের মত:

$.ajaxSetup({ dataType: "jsonp" });

সমস্যাটি সমাধান করা হয়েছে এবং আমি আর Chrome এর কনসোলে MIME টাইপ ত্রুটি দেখতে পাচ্ছি না।


0

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

একটি নতুন আইআইএস 10.0 ইনস্টলেশন ইনস্টল করতে একটি বিদ্যমান অ্যাপ্লিকেশন চালানোর চেষ্টা করার সময় আমি এই সমস্যার মুখোমুখি হয়েছি

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