我有一个在本地服务器上运行完美的金字塔应用程序,但当我将其移动到Web服务器(Dreamhost)时,我收到以下错误:
400 Bad Request:
Bad request (GET and HEAD requests may not contain a request body)
有问题的代码是Javascript中的以下ajax:
function summary_ajax(sName){
$.ajax({
type: "POST",
url: "summary",
dataType: "json",
data: {
'ccg_name': sName,
},
async: false,
success: function(data) {
//alert("In ajax success function") <----------- This never executes
lValues = data.lValues;
lLabels = data.lLabels;
},
});
};
return (lValues, lLabels);
并在views.py中处理:
@view_config(route_name="ccg_map_summary_ajax",renderer="json")
def ccg_map_summary_ajax(self):
sCCG = self.request.POST.get('ccg_name')
fData = open('pyramidapp/static/view_specific_js/ajax_summary_data.js')
dData = json.load(fData)
lLabels = dData[sCCG].keys()
lValues = dData[sCCG].values()
return {
'lLabels' : lLabels,
'lValues' : lValues,
}
我通过放置alert()
函数进行了一些测试(它很慢,因为服务器每隔很多分钟只重新加载一次脚本),除了ajax调用中的警报外,一切正常。所以似乎帖子失败了,或者视图中出现了问题。有什么想法吗?
这段代码中有什么东西可以在我的本地服务器上运行(在金字塔中),但是在Web服务器(Dreamhost)中出现故障? 本地和Web服务器中的文件结构相同。我不明白为什么它不应该,但是fData仍会打开文件进行阅读吗?
答案 0 :(得分:0)
对于其他任何人,我发现了问题:
我上面指定的路径是在我的系统上工作但不在服务器上的相对路径,因为工作目录明显不同。因此,我只是将脚本更改为具有正确的绝对路径,而不是使用相对路径。
要查找当前工作目录路径,只需在终端输入pwd
。