JQuery.getjson لا يؤدي إلى رد الاتصال
-
05-09-2019 - |
سؤال
لدي رمز HTML:
<button>asd</button>
<script type = "text/javascript">
$('button').click(
function() {
$.getJSON('/schedule/test/', function(json) {
alert('json: ' + json + ' ...');
});
}
);
</script>
وجهة نظر المقابلة:
def test(request):
if request.method == 'GET':
json = simplejson.dumps('hello world!')
return HttpResponse(json, mimetype = 'application/json')
يتم تنفيذ الرأي (اختبار باستخدام print
), json
يتم تهيئة المتغير ولكن لا يوجد تنبيه يظهر. أي خطأ ارتكبت؟ لقد رأيت بالفعل بعض المستندات على هذا (http://docs.jquery.com/ajax/jquery.getjson#uerldataCallback. على سبيل المثال) ولكن لم أجد إجابة.
تحرير: كانت المشكلة، ذلك HttpResponse
لم يتم استيرادها ... لسوء الحظ، لم يعط Django أي خطأ حول هذا الموضوع. كل شيء آخر كان صحيحا. مع تحياتي
chriss.
المحلول
من المحتمل أن يتم تشكيل JSON بشكل صحيح. في بعض الأحيان يحدث هذا لي عندما يكون التعليمات البرمجية، التي يجب أن تنتج JSON إنشاء خطأ. خيارين:
استخدم Firebug لعرض استجابة JSON
خطأ في التعامل مع خطأ في رمز مسج الخاص بك باستخدام خيارات JQuery.ajaxsetup مثل:
$.ajaxSetup({"error":function(XMLHttpRequest,textStatus, errorThrown) { alert(textStatus); alert(errorThrown); alert(XMLHttpRequest.responseText); }});
باستخدام التعامل مع الأخطاء لتصحيح الأخطاء أمر رائع، لأنك ستعرف على الفور عندما تكون هناك مشكلة في إجابتك. يمكنك التحقق من مستندات مسج ل JQuery.ajax التي لديها جميع الخيارات المتاحة ل JQuery.ajaxsetup.
تحرير: الخيار الثالث سيكون مجرد فتح عنوان URL الذي يجب أن يولد JSON وتشغيل الإخراج من خلال json lint. للتحقق من صحة ذلك.
نصائح أخرى
هل أنت متأكد من أن JSON صالح؟ إلقاء نظرة على الاستجابة مباشرة أو استخدام firebug
لقد ركضت هذا لفترة من الوقت مرة أخرى وإعادة كتابة مجمع لأجاكس jQuery الذي يسمح لك بتمرير GetJson العادي وعدل خطأ إضافي لكل GET.
http://www.nureelm.com/theanual/2012/0/09/self-indulgent-code-jquery-getjson-with-error-handling/
أعتقد أنك تفتقد نمط URL زائدة.