作者:LAMP小白 点击:12592 发布日期:2012-11-07 22:47:00 返回列表
由于需要POST跨域,所以JQUERY的getJSON方法妥妥的杯具鸟
而且需要跨域的网站不是自己的,所以iframe跨域也不行
怎么办呢?于是想到了CURL
百度了一下,收集到了一些参数,然后归纳起来写出了这个POST跨域的代码
curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); //POST数据! curl_setopt($ch, CURLOPT_POST, 1); //把post的变量加上 curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data); $output = curl_exec($ch); curl_close($ch); //返回的结果 echo $output;
1.当然是初始化CURL资源了
$ch = curl_init();
2.其次,我们需要进行一些设置
CURLOPT_URL
需要获取的URL地址,也可以在curl_init()函数中设置。
CURLOPT_RETURNTRANSFER
将curl_exec()获取的信息以文件流的形式返回,而不是直接输出。
CURLOPT_POST
启用时会发送一个常规的POST请求,类型为:application/x-www-form-urlencoded,就像表单提交的一样
CURLOPT_POSTFIELDS
全部数据使用HTTP协议中的mio_quot;POSTmio_quot;操作来发送。要发送文件,在文件名前面加上@前缀并使用完整路径。这个参数可以通过urlencoded后的字符串类似mio_#39;para1=val1mio_para2=val2mio_...mio_#39;或使用一个以字段名为键值,字段数据为值的数组。如果value是一个数组,Content-Type头将会被设置成multipart/form-data
3.执行传输
mixed curl_exec ( resource $ch )
4.获取接口的返回值
如果我们不设置CURLOPT_RETURNTRANSFER为true的话,返回值将被直接打印到屏幕上,我们没办法再对其进行处理了
当然这里我也没有对返回值进行处理,这样做的话,是为了以后功能扩展准备
显示返回值给AJAX程序结束
上一篇:CURL设置和初始化 下一篇:快递查询API