从django发送的XML响应在javascript中为null

时间:2013-06-05 08:32:17

标签: ajax django dojo

我在我的项目中使用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机器上运行它时工作正常。这似乎是一个简单的问题。我错过了很简单的事情。需要有关解决此问题的帮助。

1 个答案:

答案 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文档对象。

然而我不明白这种行为。如果有任何解释,那将会有所帮助。