Restfullyii将<link />标签添加到json响应中

时间:2014-10-13 12:18:16

标签: json rest yii

嗨,我是restfulyii的新手

我遇到了json响应的问题,标签正在被预先添加 请参阅下面的代码 (假设链接标记有'&lt;&gt;')

<link rel="stylesheet" type="text/css" href="/assets/e5ba1689/srbac.css" />{"success":true,"message":"Record(s) Found","data":{"totalCount":1,"share":[{"id":"0","elementid":"1","type":"video","suid":"1","duid":"5","permissions":"superuser"}]}}

这来自api / GET方法,与其他动词相同

由于前面的行,我无法解析我的JSON数据。

请帮助..

参考: localhost / api / - 方法:GET / POST / PUT / DELETE

除了json响应格式......

之外,一切都工作得很好

提前致谢! Ohmel Paguirigan

1 个答案:

答案 0 :(得分:1)

问题是YII没有意识到您的请求是实际的Ajax请求。

在srbac / components / Helper.php中搜索:

if (!Yii::app()->request->isAjaxRequest){ Yii::app()->clientScript->registerCssFile($cssFile); }

您会注意到SRBAC正在检查您的请求是否是实际的Ajax请求。 Yii Forms上的Yoshi说:

  

yii检查是否存在X-Requested-With HTTP标头集(哪个   应该导致$ _SERVER ['HTTP_X_REQUESTED_WITH']服务器变量)   以及它是否包含字符串'XMLHttpRequest'。但这是一个   大多数JavaScript库设置的自定义标头(jQuery也是如此)。   例如有一些代理删除这些自定义标头(主要是   出于安全原因)因此您的应用程序无法识别   是否是ajax请求。它不是100%可靠。

因此,您必须确保您的JavaScript库正在注入此标题 要在Javascript中执行此操作,请在app.run中执行此操作 添加以下内容:

$http.defaults.headers.common['X-Requested-With'] = 'XMLHttpRequest';

然后,我们在angular中的所有http请求都将发送标头yii需要识别正在发送AjaxRequest!

希望这有帮助!