用PHP方式,解决ajax跨域问题

1 篇文章 0 订阅

个人认为前后端分离的开发模式真的非常棒,通过ajax进行前后端的交互,及时,方便,快捷,反正我是觉得挺好的就是了,好了,不废话,进入正题了。

前后端分离,接下来要解决的一个问题,就是跨域,跨域有很多方法,我用的是我的师傅交给我的,好用得不得了,哈哈哈哈。。。

咳咳,又跑偏了。

首先,第一部,准备php环境,这个呢,大家就自行百度了。网上一搜教程很多。

最终我们会得到一个WWW文件夹。

把你的前端项目,看清楚,是前端项目,放进这个文件夹。

如下图:


然后,再准备一个跨域的php文件:ajax.php   放在你的项目中


<?php
/*
    type post
    http://localhost/ajax.php
    request_url                    //请求的api
    VIN                            //要传递的参数
*/

function Post($url, $post) {
    if (is_array($post)) {
        ksort($post);
        $content = http_build_query($post);
        $content_length = strlen($content);
        $options = array(
            'http' => array(
                'method' => 'POST',
                'header' =>
                "Content-type: application/x-www-form-urlencoded\r\n" .
                "Content-length: $content_length\r\n",
                'content' => $content
            )
        );
        return file_get_contents($url, false, stream_context_create($options));
    }
}

$request_url = $_POST['request_url']; 
$response = Post($request_url , $_POST);

echo $response;
?>

以上是 ajax.php 的内容

以下是重点了,如何使用:

通过ajax访问接口,在访问接口之前,先过这个ajax.php,就可以轻松解决跨域问题了。

$.ajax({
				url: 'ajax.php',//跨域的ajax.php,地址根据你放的路劲而定,我的是跟html在一个文件夹下的
				type: 'POST',//请求方式
				async: false,//是否异步
				contentType: "application/x-www-form-urlencoded; charset=utf-8",
				data: {
					request_url: '接口地址',
					param1: value1, //每个参数用逗号(英文“,”)隔开
					param2: value2 //最后一个参数后面不需要逗号 有多少参数,就写多少就行,param名称跟后端接口参数名称对应
				},
				dataType: 'json',//返回的数据格式
				success: function(data, textStatus, jqXHR) {//data:返回的json数据
					//访问接口成功返回时,运行这里的内容。
				},
				error: function(XMLHttpRequest, textStatus) {
					//接口访问失败(各种原因)时,运行这里的东西。
				}
			});

以上就是ajax访问接口的方式。

用了很久了。一直用这个,很方便,唯一就是要准备php环境,当然还有很多解决跨域的方法

以此作为记录,以后还有用得着的地方。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值