IT技术博客大学习 共学习 共进步
全部 移动开发 后端 数据库 AI 算法 安全 DevOps 前端 设计 开发者

php 跨域 form提交 2种方法

海底苍鹰(tank)博客 2015-04-08 14:20:32 累计浏览 2,309 次
本机暂存

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

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

同分类推荐文章

  1. 等了十年的 Go 链式管道,终于来了:seq 让你像写 Scala 一样写 Go (2026-06-25 18:38:18)
  2. Go 实验特性详解 (2026-06-21 10:05:27)
  3. amd64 微架构级别对 Go 程序性能提升多少? (2026-06-21 09:38:49)

查看更多 后端 文章 →

建议继续学习

  1. 使用gettext来支持PHP的多语言 (累计阅读 39,271)
  2. WordPress插件开发 -- 在插件使用数据库存储数据 (累计阅读 29,165)
  3. Paypal接口详细代码(PHP版,非API接口) (累计阅读 19,409)
  4. 我的PHP,Python和Ruby之路 (累计阅读 13,150)
  5. include(“./file.php”)和include(“file.php”)区别 (累计阅读 12,791)
  6. 15个最好的免费开源电子商务平台 (累计阅读 12,542)
  7. Redis消息队列的若干实现方式 (累计阅读 12,088)
  8. 到底什么是MVC? (累计阅读 11,872)
  9. 整理了一份招PHP高级工程师的面试题 (累计阅读 11,712)
  10. Rolling cURL: PHP并发最佳实践 (累计阅读 11,488)