场景: 项目对ajax请求和普通的请求有两种不同的处理方式, 比如错误处理这块, 通过浏览器访问出错时, 跳转到debug页面. 如下图(这个是自己写的框架, 样式copy的thinkphp, 因本人只是个纯技术. sorry - -):
ok 言归正传. 如果是ajax请求的话, 我这边需要以 json格式去返回信息. 方便前端(js, ios, android等)去处理. 如:
那么, 在服务器端我们就需要一个标记去帮助我们辨别这个请求是ajax请求还是普通的请求. 我这边参考的是 jquery 的方式, 很多人都知道, js可以通过xmlhttprequest对象的setrequestheader方法去设置. 但是如果这个请求是由服务器通过curl去发出呢. 处理方式如下:
function get($url)
{
$ch = curl_init();curl_setopt($ch, curlopt_url, $url);curl_setopt($ch, curlopt_header, 0);curl_setopt($ch, curlopt_returntransfer, 1);
$header = array('x-requested-with: xmlhttprequest');curl_setopt($ch, curlopt_httpheader, $header);$return = curl_exec($ch);curl_close($ch);return $return;
}
这样, 可以通过php 中的 $_server['http_x_requested_with']; 去获取了. 总结: 设置的头如: a-b-c, 在_server变量中打印出来的key会变成 http_a_b_c的形式.
版权声明:本文为博主原创文章,未经博主允许不得转载。
以上就介绍了php curl模拟jquery的ajax请求头添加可显示在_server中的参数,包括了方面的内容,希望对php教程有兴趣的朋友有所帮助。