微信号:phpdaily

介绍:PHP在线专注于PHP编程语言学习,PHP开发经验分享,工作问题解决以及PHP在线技能测评等多功能为一体的服务系统,希望给工作学习中的PHPER带来些帮助。

php 跨域 form提交 2种方法

2018-06-17 00:00 海底苍鹰

微信公众号:PHP在线

出于安全因素考虑,直接跨域访问是不允许的,下面介绍二种跨域的方法。

一.通过php curl
function curlPost($url,$params)  
{  
$postData = '';  
foreach($params as $k => $v)  
{  
$postData .= $k . '='.$v.'&';  
}  
rtrim($postData, '&');  
$ch = curl_init();  
curl_setopt($ch,CURLOPT_URL,$url);  
curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);  

curl_setopt($ch,CURLOPT_HEADER, false);  
curl_setopt($ch, CURLOPT_POST, count($postData));  
curl_setopt($ch, CURLOPT_POSTFIELDS, $postData);  

$output=curl_exec($ch);  

curl_close($ch);  
return $output;  
}  

echo curlPost("http://test.com",array('name'=>"tank"));  

以前很多人用curl来抓,邮箱的通讯录,不过现在已经不可以了。哈哈。

二.利用jquery form,ajax提交

1.下载jquery.form.js

2.js代码

$('#testform').submit(function() {  
$(this).ajaxSubmit({  
type: 'post', // 提交方式 get/post  
dataType:"json",//数据类型  
url: 'your url', // 需要提交的 url  
success: function(data) { // data 保存提交后返回的数据,一般为 json 数据  
// 此处可对 data 作相关处理  
alert('提交成功!');  
}  
$(this).resetForm(); // 提交后重置表单  
});  
return false; // 阻止表单自动提交事件  
});  
3.php代码
header("Access-Control-Allow-Origin:*"); //跨域权限设置,允许所有  
header("Access-Control-Allow-Origin:http://www.test.com"); //只允许test.com跨域提交数据

转载请注明

http://blog.51yip.com/php/1712.html


 
PHP在线 更多文章 MyISAM InnoDB 区别(回顾) MySQL存储引擎总结 2017年 PHP 程序员未来路在何方 MySQL InnoDB四个事务级别 与 脏读、不重复读、幻读 关于github一点小知识
猜您喜欢 这些年,我的浪 【开放注册公告】吾爱破解论坛2017年11月11日光棍节开放注册公告 301:浅谈互联网安全现状与攻击趋势 欢迎加入2000人超级hacker技术交流QQ群:8237372强烈推荐! 滴滴的小伙伴们注意!