IIS中的Tastypie返回HTML而不是JSON

时间:2013-04-23 14:06:52

标签: python ajax django iis tastypie

向Tastypie(Django)发出POST以向我的数据库添加新的“项目”对象时,以下代码在IIS之外以调试模式正常工作。

$.ajax({
    url: "http://webserver.com/api/v1/project/",
    type: "POST",
    data: jsonProject
    ...
    success: do something with the response object

注意:我在Tastypie中使用“always_return_data = True”将新创建的对象返回给客户端。

但是,当我向IIS发布相同的代码并运行应用程序时,Tastypie将返回以下带有附加到末尾的JSON对象的HTML。有没有人有任何关于为什么会发生这种情况的理论,更重要的是,如何防止IIS在这个HTML之前添加?

"<head><title>Document Moved</title></head><body><h1>Object Moved</h1>This document may be found <a HREF="http://localhost/api/v1/project/14/">here</a></body>{"id": 14, "name": "New Project", "resource_uri": "/api/v1/project/14/", "slug": "new-project", "start_date": null, "status": 0}"

我能够通过在标签上拆分响应来解决问题,但至少可以说这不是一个非常优雅的黑客。

1 个答案:

答案 0 :(得分:0)

每次创建新资源时,Tastypie都会返回一个Location标头,指向它(这是您在响应中看到的http://localhost/api/v1/project/14/网址。)

我不确定你是如何在IIS上运行django的,但我怀疑你的问题可能与此处描述的问题不一样: W7 Pro IIS 7.5 overwrites PHP Location: Header (solved)