كيف يستدعي Async Ajax باستخدام Cherrypy؟
-
19-09-2019 - |
سؤال
أنا أستخدم خادم Cherrypy's Standalone (Cherrypy.quickstart ()) و SQLite3 لقاعدة بيانات.
كنت أتساءل كيف سيقوم المرء بإجراء مكالمات AJAX / JQUERY غير المتزامنة إلى قاعدة البيانات أثناء استخدام Cherrypy؟
المحلول
بنفس الطريقة التي ستقوم بها باستخدام أي خادم خادم آخر - عن طريق الحصول على جافا سكريبت الخاص بك لاستدعاء عنوان URL الذي يتم التعامل معه بواسطة تطبيق جانب الخادم.
نصائح أخرى
إذا كنت تستخدم Cherrypy 3.2.0-RC1. ثم يمكنك استخدام الديكور @json_in
و @json_out
(انظر هنا).
هكذا:
@cherrypy.expose
@tools.json_in(on = True)
@tools.json_out(on = True)
def json_test(self):
return { 'message':'Hello, world!' }
سوف تعيد JSON إلى المتصفح، على سبيل المثال
$(document).ready(function() {
$.getJSON('/json_test', function(data) {
alert(data.message);
}
}
تحتاج إلى تذكر أن Cherrypy تتوقع JSON أن يكون لديك نوع محتوى application/json
, ، للقيام بذلك مع jQuery، إما استخدام $.ajax
ووضع ماناهلي contentType
أو يمكنك استخدام وظيفة الراحة التالية:
$.postJSON = function(url, data, callback) {
$.ajaxSetup({ scriptCharset:"utf-8",
contentType:"application/json; charset=utf-8" });
$.post(url, $.toJSON(data), callback, "json");
}
هذه الوظيفة تستخدم jQuery-json. البرنامج المساعد، ولكن يمكنك استخدام طريقة مختلفة للتحويل إلى JSON.