Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Restfullyii预弯<;链接>;标记到json响应_Json_Rest_Yii - Fatal编程技术网

Restfullyii预弯<;链接>;标记到json响应

Restfullyii预弯<;链接>;标记到json响应,json,rest,yii,Json,Rest,Yii,嗨,我是新来的 我在json响应中遇到了一个问题,一个标记被预先添加 请参阅下面的代码 (假设链接标记有“”) {“success”:true,“message”:“Record(s)Found”,“data”:{“totalCount”:1,“share”:[{“id”:“0”,“elementid”:“1”,“type”:“video”,“suid”:“1”,“duid”:“5”,“permissions”:“superuser”}]} 这来自api/under-GET方法,与其他rest

嗨,我是新来的

我在json响应中遇到了一个问题,一个标记被预先添加 请参阅下面的代码 (假设链接标记有“”)

{“success”:true,“message”:“Record(s)Found”,“data”:{“totalCount”:1,“share”:[{“id”:“0”,“elementid”:“1”,“type”:“video”,“suid”:“1”,“duid”:“5”,“permissions”:“superuser”}]}
这来自api/under-GET方法,与其他rest谓词相同

我无法解析JSON数据,因为前面有一行

请帮忙

参考: localhost/api/-method:GET/POST/PUT/DELETE

除了json响应格式之外,restful yii的一切都很好

提前谢谢!
Ohmel Paguirigan

问题在于YII没有意识到您的请求是一个实际的Ajax请求

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

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

您会注意到SRBAC正在检查您的请求是否是实际的Ajax请求。 Yii表格上写着:

yii检查是否有一个X-Requested-With HTTP头集(其中 应生成一个$\u服务器['HTTP\u X\u REQUESTED\u WITH']SERVER变量) 以及它是否包含字符串“XMLHttpRequest”。但这是一个 大多数javascript库设置的自定义头(jQuery也是如此)。 例如,有些代理会删除这些自定义标头(主要是 由于安全原因),因此您的应用程序无法识别 不管它是否是ajax请求。它不是100%可靠的

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

$http.defaults.headers.common['X-Requested-With'] = 'XMLHttpRequest';
然后,angular中的所有http请求都将发送头yii,需要识别是否正在发送AjaxRequest


希望这有帮助

谢谢你的回答。。。。我认为Yii基本上是在处理ISAJAX请求,每次我使用$.http()时都会检测到它。谢谢<代码>$http.defaults.headers.common['X-Requested-With']='XMLHttpRequest'对我来说很好。谢谢
$http.defaults.headers.common['X-Requested-With'] = 'XMLHttpRequest';