|
我最近在用CI做一个项目,
项目开放一个简单的类似api的玩意儿,
我需要从站外,也就是别的域名或者网站进行ajax来进行post数据,
但是我这边程序接收不到数据.
例:
域名A 是我的项目域名,没有一个 linkA : " A/index.php/point/points " 的方法.
域名B 是我的测试域名, 有一个简单html来测试ajax , 来进行对 linkA post数据.
我用firebug查看,应该是B域名下看不到有post信息.
但是我在域名A下用同样的html进行测试确可以看到post信息,以及能够接受post数据.
我搜索了下论坛,大部分人是害怕跨域攻击- -
但是这个没办法,我需要进行这样的验证.
当然安全那部分是稍后的处理,会有一系列的验证.理论上应该还是安全的.
求解如何解决这个跨域ajax post数据.
附测试代码:
HTML复制代码
<a href="javascript:void(0)">POST </a>
<script>
function test_post(){
var local_url = window.location.href;
var ref = document.referrer;
$.ajax({
url:'http://eggs/index.php/point/points',
type:'POST',
data:{'a':199.10,'b':100.87,'url':local_url,'ref':ref},
dataType:'text',
success:function(data){
alert(data);
}
});
}
jQuery(document).ready(function($){
});
</script>
复制代码
a 标签为了能够手动点击post~ 方便查看.
PHP复制代码
$this->point_x = $this->input->post('a');
$this->point_y = $this->input->post('b');
$this->url = $this->input->post('url');
$this->user_sign = $this->input->post('user_sign');
$this->ip = $this->input->ip_address();
$this->user_agent = $this->input->user_agent();
$this->referrer = $this->input->post('ref');
$point_table = 'test_'.table_choose ($this->url);
$data = array(
'uid'=>0,
'url_id'=>0,
'point_x'=>$this->point_x,
'point_y'=>$this->point_y,
'browers'=>$this->user_agent,
'source'=>$this->referrer
);
$this->db->insert_string($point_table,$data);
复制代码
这是处理function, point_table是用来简单分表的.
额~ 貌似数据库处理那部分还有些问题... - -难道不是这么用的么.
|
|