向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}"
我能够通过在标签上拆分响应来解决问题,但至少可以说这不是一个非常优雅的黑客。
答案 0 :(得分:0)
每次创建新资源时,Tastypie都会返回一个Location
标头,指向它(这是您在响应中看到的http://localhost/api/v1/project/14/
网址。)
我不确定你是如何在IIS上运行django的,但我怀疑你的问题可能与此处描述的问题不一样: W7 Pro IIS 7.5 overwrites PHP Location: Header (solved)