https跨域请求http数据-解决https请求下发送http请求问题

3,298 阅读1分钟

直接用ajax跨域请求返回数据因为不是https协议网站所以返回的数据或资源所以会被拦截阻挡 写一个API做中转数据,写一个接口,利用ajax去请求接口,再有接口模拟请求目标站获取数据到API接口,然后再返回数据。

前端ajax代码

          var zh='admin' ;
           var key='123456';
           var url='http:****.com';

           
           $.ajax({
            type: "Get",
            url:"getapi.php",
            dataType: "text",
            data: {userName:zh,userPwd:key,url:url},
            success: function (data) {
				 
                //判断结果
                if (data == "true") {
                    //删除禁用属性
                    $("#btn_sumbit").removeAttr("disabled");
                    //请求结果
					$("#btn_sumbit").click();
                    
                } else {
                    //请求结果
                    alert(data);
                    
                }
            }
        });

php代码

 <?php 

header("content-type:text/html;charset=utf-8");  //设置编码
  $data['userName']=$_GET['userName'];
  $data['userPwd']=$_GET['userPwd'];
  // var_dump($data);

  $url=$_GET['url'];//B站请求地址
  $postdata = http_build_query($data);
	$opts = array(
	  'http'=>array(
	  'method'=>"GET",
	  'timeout'=>60,
	)
  );
  $context = stream_context_create($opts);
  $result = file_get_contents($url."?".$postdata, false, $context);
  echo  $result;

?>