【问题标题】:Tastypie in IIS returns HTML instead of JSONIIS 中的 Tastypie 返回 HTML 而不是 JSON
【发布时间】:2013-04-16 19:04:33
【问题描述】:

当向 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 返回以下 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}"

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

【问题讨论】:

    标签: python ajax django iis tastypie


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 2022-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-06-27
      • 2018-08-27
      相关资源
      最近更新 更多