
正文
php跨域调用数据 phpstudy 跨域
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
PHP跨域获取json数据的方法,PHP里面有没有类似ajax的函数?
php中的文件读写函数基本上都可直接支持url,也就是说php跨域调用数据你可以像操作本地文件一样直接操作其他网站的文件(当然只是读取,写入是不可能的),而且没有任何跨域限制,比如下面一行代码就可直接读取百度首页的html代码php跨域调用数据:
$bd=file_get_contents("");
如果想获取json数据,只需把网址换一下即可。当然,还需要做一下格式转换,php本身就有专门的json转换函数:
$json=json_decode(file_get_contents("网址"),true);
这样一看,是不是比前端的ajax还要简单百倍php跨域调用数据?!
相关问答
Q1: PHP如何实现跨域
因工作需要,客户端软件的一些界面用HTML+CSS+Javascript实现,这些文件放在客户端本地,以本地文件形式加载,但是有些情况下,需要连接服务器取得一些信息,如果不做任何处理,则请求失败,返回的信息如下:
No
'Access-Control-Allow-Origin'
header
is
present
on
the
requested
resource.
Origin
'null'
is
therefore
not
allowed
access.
这是因为浏览器跨域策略起作用,阻止了跨域的请求。看看HTTP请求过程就知道。第一次请求后端时候,浏览器意识到是访问一个跨与资源,没有直接发送GET请求获取数据,而是发送了一个OPTIONS请求询问是否可以访问该资源。我们称之为Preflight请求,默认因为同源策略的存在,该请求返回的Header中没有'Access-Control-Allow-Origin'属性,所以访问失败。
如果要实现跨域,关键在于服务器,客户端的代码按照正常的方式编写即可。对于服务器,只需要在收到OPTIONS请求的地方,返回的头信息中增加该属性即可,代码如下:
header("Access-Control-Allow-Origin:
*");
注意,一定要在所有信息输出到客户端之前设置。
以上所述是小编给大家介绍的PHP如何实现跨域的相关内容,希望对大家有所帮助!
Q2: php怎样实现跨域操作?
服务器端PHP跨域一般没有限制php跨域调用数据,不像浏览器端有same origin policy。
把服务器B中的代码封装一下php跨域调用数据,确定好输入和输出,比如输入是一个HTTP Request,参数POST过去php跨域调用数据;输出是从HTTP Response返回一段XML。之后在服务器A的代码中做一个对服务器B的HTTP请求并处理返回的XML就好了。
有问题请追问~
Q3: PHP中运用jQuery的Ajax跨域调用实现代码
可以在页面定义一个调用方法,如下:
复制代码
代码如下:
function
getData(){
$.getJSON("?",
{
"m":"data",//
指定php的文件名字
"act":"getdata",//
指定php文件中的方法
"name":"问题儿童"//
传入的参数
},
function(data)
{
//
获得返回值
}
});
}
对应链接下(123.123.123.123)的PHP文件,一般默认先调用index.php文件,通过index.php文件内的方法处理后,转到对应的php文件,并且找到对应的方法,执行之。
index.php代码如下:
复制代码
代码如下:
?php
/**
*
入口文件
*/
$string
=
$_SERVER["REQUEST_URI"];//
获取访问的url
$m
=
get_m($string);
$file_path
=
"app/".$m.".php";
define('IS_INDEX',true);//
阻止直接访问app目录
require
($file_path);
/**
*
*
获取访问php文件
*
@param
string
$url
*/
function
get_m($url){
$strings
=
explode('m=',
$url);
$res
=
explode("",
$strings[1]);
return
empty($res[0])?'index':$res[0];
}
?
data.php代码如下:
复制代码
代码如下:
?php
/**
*
data文件
*/
$act
=
!empty($_GET['act'])
?
$_GET['act']
:
'';
if
($act
==
'getdata')
{
$name
=
"我的名字叫:".$_REQUEST['name'];
echo
$_REQUEST["callback"]."(".json_encode($name).")";
}
?
成功调用后,画面就能获取到返回的json数据了。
Q4: 怎么用php跨域获取内容
php不存在跨域问题,只有前段语言才会有.
php里面 curl 就是跨域请求数据的内置函数,它可以post,get,file都能实现。请求地址的时候注意加上http/https
Q5: PHP如何实现跨域传递参数
通常是用json,你可以用php的函数json_encode(),转换为json格式,然后输出进行传递
php跨域调用数据的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于phpstudy 跨域、php跨域调用数据的信息别忘了在本站进行查找喔。







