对本地.py脚本的Ajax调用工作得很好,直到我在顶部添加一个简单的导入,然后它就失败了,出现了一个500的错误



这一切都发生在Django平台上。这是我的ajax调用:

<>之前. ajax({美元类型:"得到",Url: 'get-dropdown-contents',//一个Url映射到controller_ajax.py数据类型:json,data: {'selection_path': selectionPath},成功:function (data) {//blah blah blah....它不会到达这里之前下面是被调用的.py脚本: <>之前从hs_restclient导入HydroShare, HydroShareAuthBasicdjango。导入JsonResponse从函数中导入irods_querydef get_dropdown_contents(请求):打印"进入"如果请求。方法== 'GET':Selection_path = request。得到("selection_path")Irods_data = irods_query(selection_path)返回JsonResponse ({'success': "响应成功返回!"irods_data":irods_data})def upload_to_hydroshare(请求):如果请求。方法== 'GET':Hydro_username = request。得到("hydro_username")Hydro_password =请求。得到("hydro_password")试一试:打印hydro_password打印hydro_usernamehs =HydroShare (auth=HydroShareAuthBasic(用户名='joe',密码='shmoe'))except Exception, err:print "Err: " + str(Err)返回JsonResponse({'错误':'用户名或密码无效'})返回JsonResponse({'success': '响应成功返回!'})之前

调用get_dropdown_contents()函数的ajax调用工作得非常好。然而,随着from hs_resclient import的简单添加…语句时,ajax调用现在失败,并显示500内部服务器错误。如果我注释掉这一条语句,调用就可以正常工作。我怎么也弄不明白为什么。

任何想法?

尝试添加

import cgitb
cgitb.enable()

放到python文件的顶部。这会在发生内部服务器错误时将跟踪重定向到浏览器,并为您提供更多信息。请记住在生产中删除它。

我在web服务器上工作时遇到了类似的问题,因为当我创建新文档时,它们没有正确的读/写/执行权限。这可能是您试图包含的文档的问题吗?您是否需要在ajax调用的文件名中包含"py"文件扩展名?

$.ajax({
        type: 'GET',
        url: 'get-dropdown-contents.py', //a url mapping to controller_ajax.py
        dataType:'json',
        data: {'selection_path': selectionPath},
        success: function (data) {
               //blah blah blah.... it doesn't reach here

最新更新