php实现跨域提交form表单的方法【2种方法】


Posted in PHP onOctober 17, 2016

本文实例讲述了php实现跨域提交form表单的方法。分享给大家供大家参考,具体如下:

有时我们为了网站安全考虑,我们不允许直接跨域提交form表单数据,如果我们自己有这个需求呢?下面我们来介绍两种跨域的方法解决直接跨域问题。

下面我们来看看两种php跨域提交form的方法

一、通过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跨域提交数据

希望本文所述对大家PHP程序设计有所帮助。

PHP 相关文章推荐
计算2000年01月01日起到指定日的天数
Oct 09 PHP
通过文字传递创建的图形按钮
Oct 09 PHP
php+mysql写的简单留言本实例代码
Jul 25 PHP
队列在编程中的实际应用(php)
Sep 04 PHP
php的大小写敏感问题整理
Dec 29 PHP
php 搜索框提示(自动完成)实例代码
Feb 05 PHP
PHP设计模式之调解者模式的深入解析
Jun 13 PHP
PHP处理SQL脚本文件导入到MySQL的代码实例
Mar 17 PHP
PHP取余函数介绍MOD(x,y)与x%y
May 15 PHP
详解PHP的Yii框架中自带的前端资源包的使用
Mar 31 PHP
php+html5+ajax实现上传图片的方法
May 14 PHP
PHP PDOStatement::getColumnMeta讲解
Feb 01 PHP
php性能分析之php-fpm慢执行日志slow log用法浅析
Oct 17 #PHP
详解PHP原生DOM对象操作XML的方法
Oct 17 #PHP
php排序算法实例分析
Oct 17 #PHP
基于thinkPHP框架实现留言板的方法
Oct 17 #PHP
php并发加锁示例
Oct 17 #PHP
thinkPHP自动验证、自动添加及表单错误问题分析
Oct 17 #PHP
PHP CURL post数据报错 failed creating formpost data
Oct 16 #PHP
You might like
PHP文件注释标记及规范小结
2012/04/01 PHP
php缓冲 output_buffering的使用详解
2013/06/13 PHP
PHP验证码函数代码(简单实用)
2013/09/29 PHP
php抽象类用法实例分析
2015/07/07 PHP
php检查函数必传参数是否存在的实例详解
2017/08/28 PHP
jquery1.4.2 for Visual studio 2010 模板文件
2010/07/14 Javascript
基于JQuery 选择器使用说明介绍
2013/04/18 Javascript
jquery选择器排除某个DOM元素的方法(实例演示)
2014/04/25 Javascript
JS完整获取IE浏览器信息包括类型、版本、语言等等
2014/05/22 Javascript
用JavaScript实现对话框的教程
2015/06/04 Javascript
javascript控制图片播放的实现代码
2020/07/29 Javascript
基于BootStrap Metronic开发框架经验小结【一】框架总览及菜单模块的处理
2016/05/12 Javascript
JS实现搜索框文字可删除功能
2016/12/28 Javascript
详解Angular路由 ng-route和ui-router的区别
2017/05/22 Javascript
vue实现歌手列表字母排序下拉滚动条侧栏排序实时更新
2019/05/14 Javascript
修改layui的后台模板的左侧导航栏可以伸缩的方法
2019/09/10 Javascript
解决vuex刷新数据消失问题
2020/11/12 Javascript
分析Python编程时利用wxPython来支持多线程的方法
2015/04/07 Python
Python中生成器和迭代器的区别详解
2018/02/10 Python
Python iter()函数用法实例分析
2018/03/17 Python
python使用筛选法计算小于给定数字的所有素数
2018/03/19 Python
浅谈numpy数组中冒号和负号的含义
2018/04/18 Python
Python中使用__new__实现单例模式并解析
2019/06/25 Python
Django REST framework 视图和路由详解
2019/07/19 Python
Python基础之字符串操作常用函数集合
2020/02/09 Python
Python基于smtplib模块发送邮件代码实例
2020/05/29 Python
Python脚本如何在bilibili中查找弹幕发送者
2020/06/04 Python
sqlalchemy实现时间列自动更新教程
2020/09/02 Python
如何利用python发送邮件
2020/09/26 Python
波兰最早的运动鞋精品店之一:Street Supply
2019/08/29 全球购物
什么是Linux虚拟文件系统VFS
2015/08/25 面试题
Linux内核的同步机制是什么?主要有哪几种内核锁
2016/07/11 面试题
税务专业毕业生自荐信
2013/11/10 职场文书
工厂厂长的职责
2013/12/12 职场文书
工程移交协议书
2016/03/24 职场文书
在Oracle表中进行关键词搜索的过程
2022/06/10 Oracle