嗨,我是restfulyii的新手
我遇到了json响应的问题,标签正在被预先添加 请参阅下面的代码 (假设链接标记有'<>')
<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
答案 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!
希望这有帮助!