2013-04-23 2 views
1

Tastypie (Django)에 POST를 실행하여 데이터베이스에 새 "프로젝트"개체를 추가 할 때 다음 코드는 디버그 모드에서 IIS 외부에서 올바르게 작동합니다.IIS의 Tastypie가 JSON 대신 HTML을 반환합니다.

$.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

새 리소스를 만들 때마다 Tastypie는 Location 헤더를 반환합니다 (응답에서 반환되는 http://localhost/api/v1/project/14/ URL입니다).

난 당신이 IIS에 장고를 실행하는 방법을 정확하게 모르겠지만, 문제와 동일하지가 여기에 설명 된 경우에 나는 당신의 문제는 유사한 생각되는 : W7 Pro IIS 7.5 overwrites PHP Location: Header (solved)

관련 문제