同一網域名稱下的參數傳遞是很容易實現的,但是跨域就存在一定的限制。當然可以搜到很多介紹的文章,在這裡我對jsonp這種單向跨域的方式進行總結,並附上一個小例子。
問題描述:
由於在伺服器上開發,用不用的連接埠號碼來區分不同的項目。
實現192.168.1.10:8888可以調用8889項目上的參數。(源於單點登入,驗證時的需要)
192.168.1.10:8888端:
1. controller實現:
public function test(){ return view('test');}
2.'test.blade.php':
<html><head> <title>11111</title></head><body> <button id="get22222">Click</button> @if(Cookie::has('test')) {{Cookie::get('test')}}@endif <script src="http://ajax.aspnetcdn.com/ajax/jquery/jquery-1.8.0.js" type="text/javascript"></script> <script type="text/javascript"> $("#get22222").click(function () { $.ajax({ url: 'http://192.168.1.10:8889/test', dataType: "jsonp", jsonp: "callback", success: function (data) { alert(data); }, error:function() { alert("error"); } }) }) </script></body></html>
192.168.1.10:8889端:
1.controller實現:
public function test(){ \Debugbar::disable(); $callback = Input::get('callback'); $arr =array('a'=>'panhe','b'=>'dada'); //return $callback."('". json_encode($arr). "')"; return response($callback."('". json_encode($arr). "')")->withCookie('test','authverify',10000000,'/') ->header('p3p', 'CP="IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT"'); }