আমি কার্সিওনের দেওয়া উত্তরটি ব্যবহার করে এটিকে জেএসএন ব্যবহার করতে সংশোধন করেছি।
function getUrlJsonSync(url){
var jqxhr = $.ajax({
type: "GET",
url: url,
dataType: 'json',
cache: false,
async: false
});
// 'async' has to be 'false' for this to work
var response = {valid: jqxhr.statusText, data: jqxhr.responseJSON};
return response;
}
function testGetUrlJsonSync()
{
var reply = getUrlJsonSync("myurl");
if (reply.valid == 'OK')
{
console.dir(reply.data);
}
else
{
alert('not valid');
}
}
আমি যোগ ডাটাটাইপ এর 'json' এবং পরিবর্তন .responseText করার responseJSON ।
আমি প্রত্যাবর্তিত অবজেক্টের স্ট্যাটাসটেক্সট সম্পত্তি ব্যবহার করেও স্থিতি পুনরুদ্ধার করেছি । দ্রষ্টব্য, এটি জাজোন বৈধ কিনা তা নয়, এটি আজাক্স প্রতিক্রিয়াটির স্থিতি।
ব্যাক-এন্ডে প্রতিক্রিয়াটি সঠিক (সুগঠিত) জেএসএনে ফিরিয়ে দিতে হবে, অন্যথায় প্রত্যাবর্তিত অবজেক্টটি সংজ্ঞায়িত হবে।
মূল প্রশ্নের উত্তর দেওয়ার সময় দুটি দিক বিবেচনা করতে হবে। একটি অ্যাজাক্সকে সিঙ্ক্রোনালি পারফরম্যান্স করতে বলছে ( অ্যাসিঙ্ক সেট করে : ভুয়া ) এবং অন্যটি কলব্যাক ফাংশন না করে কলিং ফাংশনের রিটার্ন স্টেটমেন্টের মাধ্যমে প্রতিক্রিয়া ফিরিয়ে দিচ্ছে।
আমি এটি পোস্টার দিয়ে চেষ্টা করেছিলাম এবং এটি কাজ করে।
আমি জিইটিটিকে পোস্টে পরিবর্তন করেছি এবং ডেটা যুক্ত করেছি: পোস্টডেটা
function postUrlJsonSync(url, postdata){
var jqxhr = $.ajax({
type: "POST",
url: url,
data: postdata,
dataType: 'json',
cache: false,
async: false
});
// 'async' has to be 'false' for this to work
var response = {valid: jqxhr.statusText, data: jqxhr.responseJSON};
return response;
}
মনে রাখবেন, উপরে কোড শুধুমাত্র ক্ষেত্রে যেখানে কাজ করে ASYNC হয় মিথ্যা । যদি আপনি অ্যাসিঙ্ক সেট করতে চান : সত্যিকার অর্থে প্রত্যাবর্তিত অবজেক্ট jqxhr এজেএক্স কল রিটার্নের সময় বৈধ হবে না, কেবল পরে যখন অ্যাসিঙ্ক্রোনাস কলটি শেষ হবে, তবে প্রতিক্রিয়া ভেরিয়েবল সেট করতে এটি অনেক দেরিতে ।
beforecreate
।