jQuery 利用 $.getJson() 实现跨域
數據量不大時,跨域的不二之選,而且操作簡單,易上手。
?
a.com/test.html
//這里我假定有一些數據:
var formData = form.serialize();
//這里的jsoncallback 是一個回調函數名 ,是必須的參數
//wrand保證每次請求不一樣,兼容IE問題
var url = "http://www.xxx.com/fb/add?wrand="+Math.random()+formData+"&jsoncallback=?";
$.getJSON(url,{"noCache":d},function (info){
console.log(info);
});
?
xxx.com/fb/add ?-> add.php
<?php
$post = $_POST;
//一些安全處理...略
//$cb 就是傳來的回調函數名
$cb = $post['jsoncallback'];
//這里是一些其他操作,比如往某數據庫添加數據,我返回一個添加成功或者失敗的信息,$res 表示添加成功或者失敗
$msg = $res ? "添加成功" : "添加失敗";
$status = $res ? 1 : 0;
//json格式 {"status":$status,"data":$msg}
//使用PHP的json_encode()函數
$json = json_encode(array("status"=>$status,"data"=>$msg));
但是這個json對象需要放在上面的回調函數中作為參數返回;
echo $cb."(".$json.")";
這時你會發現前端控制臺中打印出了這些反饋信息。
?
#補充:如果,在a.com/test.html中 有一個驗證碼要在后臺驗證,會發現,在IE中始終無法獲取這個session,說明IE中跨域導致session丟失了。
解決的辦法是,在驗證碼輸出的頁面加上以下這句話:
header('P3P: CP="ALL ADM DEV PSAi COM OUR OTRo STP IND ONL"');?
?
轉載于:https://www.cnblogs.com/Zell-Dinch/p/4376237.html
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的jQuery 利用 $.getJson() 实现跨域的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: [翻译] ABCIntroView
- 下一篇: 树——平衡二叉树插入和查找的JAVA实现