有时候前端用ajax时,碰到跨域问题,浏览器会报错,又不能改对方服务器上代码,其实很简单!只需要在自已的服务器写一个“php中转页面”。
即ajax向自己服务器的php页面发出请求,再由这个php页面去调用另一个域名的接口,就规避ajax跨域问题。这种方法在调用其他人的api接口时,很常用。
前端JS代码:
$.ajax({
type: "get",
dataType: "jsonp",
url: "Test.php", //你服务器上的中转php文件如 Test.php
data: "abc=1&cdef=2", //传递的参数
timeout: 5000,
complete :function(){},
success: function(xml)
{
//您的处理代码
}
})
中转文件Test.php代码:
<?php
header("Content-Type: application/json" );
$abc=$_GET['abc'];
$headers = [
'Accept: application/json',
'Content-Type: application/json',
'Authorization: Bearer '
];
$curl = curl_init();
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE);
curl_setopt($curl, CURLOPT_URL,'http://目标网址/?message='.$abc);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
curl_setopt($curl, CURLOPT_POST, 1);
//执行命令
$data = curl_exec($curl);
echo $data;
?>