0

我正在使用 CodeIgniter 框架开发 API。

情景-

  1. 我的应用程序将使用http://myapi.com/controler?parA=valA&parB=valB调用我的 API
  2. 我的控制器将 _GET 请求并处理它。
  3. 控制器将调用一个视图$this->load->view('response',$data, true)

我的查看文件-

响应.php

<response>
    <status>
        200
    </status>
    <mode>
        VisaCreditCard
    </mode>
    <options>
        <option name="Transfer" url="http://myapi.com/controller/transfer?id=8230&reason=illness" />
        <option name="Cancel" url="http://myapi.com/controller/cancel?id=3934"/>
        <option name="New Booking" url="http://myapi.com/controller/book_new" />
    </options>
</response>

请注意,标签名称与我在应用程序中使用的相同,尽管里面的值是模糊的。这是因为我希望您注意<options>and <option/>

问题

现在的问题是,当我调用我的 API 时,CI 会完成它的所有工作,然后给出我在屏幕上看到的所有内容的视图

200 VisaCreditCard

当我检查页面的源代码时,我得到了我想要的,即我在我的 respons.php 文件中的文本 期望 我希望我在输出中得到的源代码在我调用它时是可见的网址。


服务器信息

  • Ubuntu 13.04

  • 阿帕奇2

  • PHP 5

  • Codeigniter 2.1.3(重写 PHP 短标签 - FALSE & .htaccess 以省略 index.php)


4

1 回答 1

0

经过近 7 个小时的猛烈搜索,实验和苦难终于浮出水面。


我做了两件事,它被解决了。

  1. 在声明的标头上设置Content-Type:text/xml.
  2. 省略第三个参数$this->load->view('response',$data)

现在我的代码是:

<?php header ("Content-Type:text/xml"); ?>

<response>
    <status>
        200
    </status>
    <mode>
        VisaCreditCard
    </mode>
    <options>
        <option name="Transfer" url="http://myapi.com/controller/transfer?id=8230&reason=illness" />
        <option name="Cancel" url="http://myapi.com/controller/cancel?id=3934"/>
        <option name="New Booking" url="http://myapi.com/controller/book_new" />
    </options>
</response>

并且,不要忘记将转换&为,&amp;否则您将再次陷入错误。

于 2013-06-20T16:29:54.593 回答