我在我的项目中使用dojo作为django。我从dojo.xhrPost方法调用url。这是代码段
dojo.xhrPost( {
form: cvForm,
url: '/config/validate_cfgtask/',
handleAs: "xml",
timeout: 0, // in millisec
// The LOAD function will be called on a successful response.
load: function(response, ioArgs) {
console.log('debug response : '+response+"status "+ioArgs.xhr.status);
}
});
我已在urls.py文件中包含了此网址的
以下是处理此请求的代码 def validate_cfgtasknew(request,taskid): xml =“” status ='true' resultmsg ='未找到验证错误。 sshtaskid = 69 XML + = “”” %S %S %S “”“%(status,resultmsg,str(sshtaskid)) XML + = “” xml = xmltemplate%(有效,xml) 返回HttpResponse(xml,mimetype =“text / xml”)
当我在python中打印xml的值时,它是
<result><sshtask>
<status>true</status>
<message>No validation error is found.</message>
<taskid>69</taskid>
</sshtask></result>
</response>
问题是当我在python代码中打印xml时,我得到了上面给出的正确的xml数据。但是dojo的load方法中的响应值为null。
DEBUG获得响应null状态:200
当我在我的Windows机器上运行它时工作正常。这似乎是一个简单的问题。我错过了很简单的事情。需要有关解决此问题的帮助。
答案 0 :(得分:0)
我解决了问题。
以前我没有访问或使用传递给Django视图的请求对象。相反,我使用了查询参数并进行了处理。当我能够在javascript中获得正确的响应时,我只是访问请求对象。
def validate_cfgtasknew(request, taskid):
xml = ""
status = 'true'
resultmsg= 'No validation error is found.'
sshtaskid = 69
querydict = request.POST
xml = <result><sshtask>
<status>true</status>
<message>No validation error is found.</message>
<taskid>69</taskid>
</sshtask></result>
返回HttpResponse(xml,mimetype =“text / xml”)
querydict = request.POST
是我添加的行,用于在我的javascript中恢复xml文档对象。
然而我不明白这种行为。如果有任何解释,那将会有所帮助。