AJAX পোস্ট ত্রুটি: অনিরাপদ শিরোনাম "সংযোগ" সেট করতে অস্বীকার করেছেন


101

আমার নিম্নলিখিত কাস্টম এজ্যাক্স ফাংশন রয়েছে যা কোনও পিএইচপি ফাইলে ডেটা পোস্ট করে। প্রতিবার ডেটা পোস্ট হওয়ার পরে আমি নিম্নলিখিত দুটি ত্রুটি পেয়েছি:

অনিরাপদ শিরোলেখ "সামগ্রী-দৈর্ঘ্য"
সেট করতে অস্বীকার করেছেন অনিরাপদ শিরোনাম "সংযোগ" সেট করতে অস্বীকার করেছেন

কোড:

function passposturl(url1, params, obj)
{
    //url1 = url1+"&sid="+Math.random();
    xmlHttp = get_xmlhttp_obj();
    xmlHttp.loadflag = obj;
    xmlHttp.open("POST", url1, true);
    //alert(url1);
    //alert(params);
    //alert(obj);
    //alert(params.length);
    xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    xmlHttp.setRequestHeader("Content-length", params.length);
    xmlHttp.setRequestHeader("Connection", "close");
    xmlHttp.onreadystatechange = function ()
    {
        stateChanged(xmlHttp);
    };
    xmlHttp.send(params);
 }

আমি কি ভুল করছি?



ওহে জোয়ি আমি এখানে পোস্ট করার আগে আমি তা পেরেছি। আমি এখনও এটি পাচ্ছি না। আমাকে যা করতে হবে তা হ'ল সেটরেউইচহেডারের লাইনগুলিকেই মন্তব্য করতে হবে?
স্নিপার 21

উত্তর:


167

এই দুটি লাইন সরান:

xmlHttp.setRequestHeader("Content-length", params.length);
xmlHttp.setRequestHeader("Connection", "close");

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


5
কী "দুর্বলতা" Connection: closeসৃষ্টি করে? আপনি কি জানেন একটি অনুরোধ একটি দীর্ঘ সময় লাগবে, এটা করা উচিত নয় অনুরোধ করতে এটি ক্রমাগত সংযোগ বেঁধে না সম্ভব হবে। ব্রাউজারগুলি অনুরোধ পাইপলাইনিংকে সমর্থন করে না, সুতরাং যদি দীর্ঘ সময় চলার অনুরোধটি কোনও সাধারণ অনুরোধের আগে আসে, তবে এটি সম্পূর্ণ রক্ষণশীল সময়ের জন্য ২ য় অনুরোধটিকে অবরুদ্ধ করবে। যদি দীর্ঘকাল চলমান অনুরোধটি "সংযোগ: বন্ধ" ব্যবহার করতে পারে তবে স্থির সংযোগটি বেঁধে না রাখার অনুরোধ করা সম্ভব হবে (উদাহরণস্বরূপ) একটি অপ্রয়োজনীয় 5 সেকেন্ড বিলম্ব (যেখানে 5 সেকেন্ড রাখার সময়)।
দউগ 65536

4
@ ডগ 65536: ব্রাউজারগুলি শিরোনামের মানগুলি বৈধতা দেয় না, তারা কেবল এমন শিরোনাম স্থাপন করতে অস্বীকৃতি জানায় যা আপনার উচিত হয় না।
ও্লাদিমির পালান্ট

হাই ও্লাদিমির, আমি যদি 2 পংক্তি অপসারণ করি তবে আমি কীভাবে আমার পরামিতিটি পাস করব?
zukijuki

@ অ্যানিক্সেসকার্ডার: আপনি করবেন না। এই দুটি শিরোলেখ ব্রাউজার দ্বারা স্বয়ংক্রিয়ভাবে সেট করা আছে এবং পরিবর্তন করা যায় না।
ও্লাদিমির পালান্ট

পুনঃ: "এটি স্থির সংযোগ বেঁধে না দেওয়ার জন্য অনুরোধ করা উচিত" " - এটাই নয় | সংযোগ: বন্ধ | করে
এরিকলও
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.