有時我們為了網站安全考慮,我們不允許直接跨域提交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://Vevb.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://m.survivalescaperooms.com"); //只允許test.com跨域提交數據
新聞熱點
疑難解答