මම Carcione දුන් පිළිතුර භාවිතා කර JSON භාවිතා කිරීමට එය වෙනස් කළෙමි.
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');
}
}
මම එකතු dataType ක 'JSON' හා වෙනස් .responseText කිරීමට responseJSON .
ආපසු ලබා දුන් වස්තුවෙහි තත්ව ටෙක්ස්ට් දේපල භාවිතා කරමින් මම තත්වය ලබා ගතිමි . සටහන, මෙය අජැක්ස් ප්රතිචාරයේ තත්වය මිස JSON වලංගු ද යන්න නොවේ.
පසුපස කෙළවරට ප්රතිචාරය නිවැරදි (හොඳින් සැකසූ) JSON මගින් ආපසු ලබා දිය යුතුය, එසේ නොමැතිනම් ආපසු ලබා දුන් වස්තුව නිර්වචනය නොකෙරේ.
මුල් ප්රශ්නයට පිළිතුරු සැපයීමේදී සලකා බැලිය යුතු කරුණු දෙකක් තිබේ. එකක් නම් අජැක්ස් හට සමකාලීනව ක්රියා කරන ලෙසයි ( අසමමුහුර්ත: අසත්යය සැකසීමෙනි ) සහ අනෙක ඇමතුම ශ්රිතයක් වෙනුවට ඇමතුම් ශ්රිතයේ ප්රතිලාභ ප්රකාශය හරහා ප්රතිචාර දැක්වීම ය.
මම එය POST සමඟ අත්හදා බැලූ අතර එය ක්රියාත්මක විය.
මම GET POST ලෙස වෙනස් කර දත්ත එකතු කළෙමි: postdata
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;
}
ඉහත කේතය පමණක් එහිදී මෙම නඩුවේ ක්රියා කරන සටහන අසමකාලීක වේ බොරු . ඔබ අසමමුහුර්ත ලෙස සකසන්නේ නම් : සත්ය ආපසු ලබා දුන් වස්තුව jqxhr වලංගු නොවන්නේ AJAX ඇමතුම ආපසු එන අවස්ථාවේදීය, පසුව අසමමුහුර්ත ඇමතුම අවසන් වූ පසුව පමණි, නමුත් ප්රතිචාර විචල්යය සැකසීමට එය ප්රමාද වැඩිය .
beforecreate
.