我有一个 azure 部署的 django web 应用程序,当我单击下一步时,它会一一显示 instagram 嵌入页面。
问题:-
当我打开 Azure Active Directory 身份验证时,它会加载第一个 instagram 嵌入式链接,但单击应该加载下一个嵌入式页面的下一个按钮时,它会在控制台上显示 http 500 错误消息并且不加载页面。
如果我关闭 AD 身份验证并设置为匿名访问,则在下次单击时页面加载没有任何问题。
问题是什么?如何在我的身份验证设置上加载它们?
编辑
在 Instagram 页面是无法加载页面背后的问题之前,我已经得出一个结论,但似乎这不是问题所在。
问题在于我在单击下一步按钮时调用的 URL。通过身份验证,应用程序不会直接进入下一页,但没有任何身份验证,它会成功进入下一页。
请参阅下面我拨打电话的代码:-
$("#button-next").click(function(e){
var fin = '';
$.ajax({
url: 'mywebsitename.azurewebsites.net/next_details/',
method: 'GET',
data: {'link': window.location.href},
success: function(response) {
if (response.data != 'no links') {
$.each(response['data'], function(index, value){
fin += "//pass"
});
$('append-iframes').html(fin);
window.location.href = '*' + response.name + '/?type=' + response.check_type;
}
}
})
})
编辑 - 2
//Next_details 函数
@csrf_exempt
https://myappname.azurewebsites.net
def next_details(request):
import pdb; pdb.set_trace()
check_type = ''.join(findall('type=(.*)', request.POST.get('link', '')))
data_list = []
if check_type:
present_link = request.POST.get('link', '').split('/')[-2]
if check_type == 'all':
data = urlopen('https://myappname.azurewebsites.net/get_detailed/').read()
else:
data = urlopen('https://myappname.azurewebsites.net/get_detailed_%s/' % check_type).read()
else:
check_type= 'all'
present_link = request.POST.get('link', '').split('/')[-1]
data = urlopen('https://myappname.azurewebsites.net/get_detailed/').read()
data_json = json.loads(data)
qual_data = [dt['id'] for dt in data_json['qual_data'] if dt['name'] == present_link]
if qual_data:
present_id = qual_data[0]
next_acc = [dt['name'] for dt in data_json['qual_data'] if dt['id'] == present_id + 1]
acc_name = next_acc[0]
links = Radarly.objects.filter(screen_name=acc_name, status='Active')
if links:
for link in links:
data_list.append({'perma_link': link.permalink, 'name': acc_name})
data = json.dumps({'data': data_list, 'check_type': check_type})
return HttpResponse(data, content_type ="application/json")
else:
new_data = json.dumps({'data': 'no links'})
return HttpResponse(new_data, content_type ="application/json")