2013-04-23 1 views
1

При отправке POST в Tastypie (Django) для добавления нового объекта «project» в мою базу данных следующий код отлично работает за пределами IIS в режиме отладки.Tastypie в IIS возвращает HTML вместо JSON

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

Примечание: Я использую «always_return_data = True» в Tastypie вернуть вновь созданный объект обратно клиенту.

ОДНАКО, когда я публикую тот же код в IIS и запускаю приложение, Tastypie возвращает следующий HTML-код с добавленным объектом 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/, который вы видите в ответ).

Я не уверен, как именно вы используете Django на IIS, но я подозреваю, что ваша проблема может быть похожа, если не то же самое, как проблема описана здесь: W7 Pro IIS 7.5 overwrites PHP Location: Header (solved)