আমি আমার এজেএক্স পোস্টের মাধ্যমে জ্যাঙ্গোর সিএসআরএফ সুরক্ষা প্রক্রিয়া মেনে চলতে কিছু সহায়তা ব্যবহার করতে পারি। আমি এখানে দিকনির্দেশগুলি অনুসরণ করেছি:
http://docs.djangoproject.com/en/dev/ref/contrib/csrf/
আমি তাদের এজেএক্স নমুনা কোডটি সেই পৃষ্ঠায় ঠিক অনুলিপি করেছি:
http://docs.djangoproject.com/en/dev/ref/contrib/csrf/#ajax
আমি কল getCookie('csrftoken')
করার আগে এর বিষয়বস্তুগুলি মুদ্রণের জন্য একটি সতর্কতা রেখেছিলাম xhr.setRequestHeader
এবং এটি সত্যিই কিছু ডেটা সহ জনপ্রিয় হয়। টোকনটি সঠিক কিনা তা যাচাই করবেন তা সম্পর্কে আমি নিশ্চিত নই, তবে আমি উত্সাহিত করেছি যে এটি কিছু খুঁজে পেয়ে এবং প্রেরণ করবে।
তবে জ্যাঙ্গো এখনও আমার এজেএক্স পোস্ট প্রত্যাখ্যান করছে।
এখানে আমার জাভাস্ক্রিপ্ট:
$.post("/memorize/", data, function (result) {
if (result != "failure") {
get_random_card();
}
else {
alert("Failed to save card data.");
}
});
জাঙ্গো থেকে আমি যে ত্রুটিটি দেখছি তা এখানে:
[23 / ফেব্রুয়ারী / 2011 22:08:29] "পোস্ট করুন / মুখস্থ / HTTP / 1.1" 403 2332
আমি নিশ্চিত যে আমি কিছু মিস করছি, এবং সম্ভবত এটি সহজ, তবে আমি এটি জানি না। আমি এসও এর আশেপাশে অনুসন্ধান করেছি এবং csrf_exempt
সজ্জাকারীর মাধ্যমে আমার দৃষ্টিভঙ্গির জন্য সিএসআরএফ চেক বন্ধ করার বিষয়ে কিছু তথ্য দেখেছি , তবে আমি এটি আবেদনকারী মনে করি না। আমি এটি চেষ্টা করেছি এবং এটি কার্যকর হয়েছে, তবে আমি বরং আমার পোষ্টকে জ্যাঙ্গো যেভাবে সম্ভব হয়েছিল তা প্রত্যাশা করার জন্য তৈরি করার জন্য তৈরি করার চেষ্টা করতাম possible
কেবলমাত্র এটি সহায়ক হলে এখানে আমার দৃষ্টিভঙ্গি যা করছে তার সংক্ষিপ্তসার:
def myview(request):
profile = request.user.profile
if request.method == 'POST':
"""
Process the post...
"""
return HttpResponseRedirect('/memorize/')
else: # request.method == 'GET'
ajax = request.GET.has_key('ajax')
"""
Some irrelevent code...
"""
if ajax:
response = HttpResponse()
profile.get_stack_json(response)
return response
else:
"""
Get data to send along with the content of the page.
"""
return render_to_response('memorize/memorize.html',
""" My data """
context_instance=RequestContext(request))
আপনার জবাবের জন্য ধন্যবাদ!