2013-04-23 75 views
1

向Tastypie(Django)發佈POST以向我的數據庫添加新的「項目」對象時,下面的代碼在調試模式下可以在IIS之外正常工作。IIS中的Tastypie返回HTML而不是JSON

$.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返回以下HTML w /附加到結尾的JSON對象。有沒有人有任何理論知道爲什麼會發生這種情況,更重要的是,如何避免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

每當您創建一個指向它的新資源時,Tastypie都會返回一個Location頭文件(這是您在響應中返回的http://localhost/api/v1/project/14/ url)。

我不知道你究竟是如何在IIS上運行Django的,但我懷疑你的問題可能是類似的,如果不一樣,這裏的問題描述: W7 Pro IIS 7.5 overwrites PHP Location: Header (solved)