我正在使用CodeIgniter框架开发API。
-
- 我的应用程序将调用我的API http://myapi.com/controler?parA=valA&parB=valB
- 我的控制器将_GET请求并处理它
- 控制器将使用
$this->load->view('response',$data, true)
调用视图。
My View File -
Response.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>
和<option/>
。
现在的问题是,当我调用API时,CI会完成所有的工作然后给出这个视图我在屏幕上看到的只有
200 VisaCreditCard
当我检查查看页面的源代码时,我得到了我想要的,即我在response .php文件中的文本 当我调用那个url时,我希望在我的输出中得到的源代码是可见的。
服务器信息
- Ubuntu 13.04
输入
PHP 5 Codeigniter 2.1.3(重写PHP短标签- FALSE &
经过近7个小时的艰苦搜索,实验和痛苦终于有了结果。
我做了两件事就解决了。
- 设置声明
Content-Type:text/xml
的头信息。 - 省略第三个参数
$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>
并且,不要忘记将&
转换为&
,否则您将再次陷入错误