php 支援jsonp跨域請求
客戶端請求:
[html] view plaincopyprint?
- aa
var qsData = "123454";
$.ajax({
url: "",
type: "POST",
dataType: 'jsonp',
jsonp: 'callback',
data: qsData,
timeout: 2000,
success: function (json) {//客戶端jquery預先定義好的callback函式,成功獲取跨域伺服器上的json資料後,會動態執行這個callback函式
alert(json);
}
});
伺服器端響應:
[php] view plaincopyprint?
//服務端返回JSON資料
$arr=array('a'=>1,'b'=>2,'c'=>3,'d'=>4,'e'=>5);
$result=json_encode($arr);
//動態執行回撥函式
$callback=$_GET['callback'];
echo $callback."($result)";
響應結果:
Jsonp優點:它不像XMLHttpRequest物件實現的Ajax請求那樣受到同源策略的限制;它的相容性更好,在更加古老的瀏覽器中都可以執行,不需要XMLHttpRequest或ActiveX的支援;並且在請求完畢後可以透過呼叫callback的方式回傳結果。
Jsonp缺點:JSONP不提供錯誤處理。如果動態插入的程式碼正常執行,你可以得到返回,但是如果失敗了,那麼什麼都不會發生。你無法獲得一個404的錯誤,也不能取消這個請求。另外一個重要的缺點是如果使用了不信任的服務會造成很大的安全隱患。它只支援GET請求而不支援POST等其它型別的HTTP請求;它只支援跨域HTTP請求這種情況,不能解決不同域的兩個頁面之間如何進行JavaScript呼叫的問題。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/2035/viewspace-2802307/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 簡單的實現jsonp跨域請求JSON跨域
- 搞定所有的跨域請求問題: jsonp & CORS跨域JSONCORS
- Vue——介面請求支援跨域Vue跨域
- 跨域請求之jQuery的ajax jsonp的使用解惑跨域jQueryJSON
- 中止請求和超時 跨域的HTTP請求 認證方式 JSONP跨域HTTPJSON
- 跨域請求跨域
- vue跨域請求Vue跨域
- CORS跨域請求CORS跨域
- 允許跨域請求跨域
- vue axios 請求跨域VueiOS跨域
- jsonp跨域封裝JSON跨域封裝
- JavaScript跨域呼叫、JSONPJavaScript跨域JSON
- 同源政策與跨域請求跨域
- Cross-origin 跨域請求ROS跨域
- 跨域請求後端配置跨域後端
- NGINX如何配置跨域請求Nginx跨域
- 原生ajax請求&JSONPJSON
- IE9 跨域請求相容IE9跨域
- 跨域之OPTION請求【轉載】跨域
- web 跨域請求安全問題Web跨域
- 跨域是什麼?跨域請求資源有哪些方法?跨域
- 深入跨域問題(3) – 利用 JSONP 解決跨域跨域JSON
- 深入跨域問題(3) - 利用 JSONP 解決跨域跨域JSON
- jsonp跨域資源引起CORBJSON跨域ORB
- JSONP 跨域原理及實現JSON跨域
- Ajax+SpringMVC實現跨域請求SpringMVC跨域
- 使用cors完成跨域請求處理CORS跨域
- 如何使flask允許跨域請求Flask跨域
- SpringBoot解決跨域請求攔截Spring Boot跨域
- 13、HttpClient伺服器跨域請求HTTPclient伺服器跨域
- ajax跨域請求之CORS的使用跨域CORS
- CROS跨域請求設定,偏重前端ROS跨域前端
- options 請求跨域問題處理跨域
- 跨域請求cookie資源共享詳解跨域Cookie
- CORS跨域限制以及預請求驗證CORS跨域
- 前端http請求跨域問題解決前端HTTP跨域
- Ajax 跨域請求 Access to XMLHttpRequest 解決方案跨域XMLHTTP
- js ajax請求封裝及解決node請求跨域問題JS封裝跨域