0

我在我的项目中使用 dojo for 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 文件中包含了这个 url 的条目

以下是处理此请求的代码 def validate_cfgtasknew(request, taskid): xml = "" status = 'true' resultmsg= '未发现验证错误。' sshtaskid = 69 xml+=""" %s %s %s """ % (status, resultmsg, str(sshtaskid)) xml+="" xml = xmltemplate % (valid, xml) return 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方法中response的值为null。

调试得到响应空状态:200

当我在我的 Windows 机器上运行它时,它工作正常。这似乎是一个简单的问题。我错过了一些非常简单的东西。需要帮助解决此问题。

4

1 回答 1

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 文档对象的行。

但是我不明白这种行为。如果有任何解释,那将很有帮助。

于 2013-06-06T10:19:32.957 回答