Zuvor habe ich geschrieben: „Ein einfaches Beispiel dafür, wie PHP JSON-Daten zurückgibt“, „PHP gibt JSON-Daten zurück, chinesisches Anzeigeproblem“ und „JSON in der PHP-Sprache verwenden und JSON in ein Array reduzieren“. Ich hoffe, es hilft allen.
Beispiel 1
test.html
<!doctype html> <html> <head> <meta charset="utf-8"> <title>test</title> <script src="jquery-1.5.2.min.js"></script> <script src="ajax.js"></script> </head> <body> </body> </html>
ajax.js
$.ajax({ type : "post", url : "ajax.php", dataType : "jsonp", jsonp: "callback",//传递给请求处理程序或页面的,用以获得jsonp回调函数名的参数名(默认为:callback) jsonpCallback:"success_jsonpCallback",//自定义的jsonp回调函数名称,默认为jQuery自动生成的随机函数名 success : function(json){ alert('success'); }, error:function(){ alert('fail'); } });
ajax.php
<?php $data = "......."; $callback = $_GET['callback']; echo $callback.'('.json_encode($data).')'; exit; ?>
jquery-1.5.2.min.js
Laden Sie es selbst herunter
Bei Verwendung von JSONP und beim Aufrufen von Funktionen im JSONP-Format, z. B. „myurl?callback=?“ jQuery ersetzt ? automatisch durch den richtigen Funktionsnamen, um die Rückruffunktion auszuführen.
Beispiel 2
test.html
<!doctype html> <html> <head> <meta charset="utf-8"> <title>test</title> <script src="jquery-1.5.2.min.js"></script> <script src="ajax.js"></script> </head> <body> <form name="form"> <input type="text" name="sex"> <input type="text" name="age"> <input type="button" id="btn" value="button" /> </form> </body> </html>
ajax.js
$(document).ready(function(){ $("#btn").click(function(k) { //... var j = $("form").serializeArray();//序列化name/value $.ajax({ type: 'GET', //这里用GET url: 'ajax.php', dataType: 'jsonp', //类型 data: j, jsonp: 'callback', //jsonp回调参数,必需 async: false, success: function(result) {//返回的json数据 alert(result.message); //回调输出 result = result || {}; if (result.msg=='err'){ alert(result.info); }else if (result.msg=="ok"){ alert('提交成功'); }else{ alert('提交失败'); } }, timeout: 3000 }) //... }); });
ajax.php
<?php $callback = isset($_GET['callback']) ? trim($_GET['callback']) : ''; //jsonp回调参数,必需 $date = array("age"=>$_GET['age'], "message"=>$_GET['age']); $date["msg"]="err"; $date["info"]="因人品问题,发送失败"; $tmp= json_encode($date); //json 数据 echo $callback . '(' . $tmp .')'; //返回格式,必需 ?>
jquery-1.5.2.min.js
Laden Sie es selbst aus dem Internet herunter
Verwandte Empfehlungen:
JS-Cross-Domain-Request-Service-Instanzanalyse
Ajax-Front-End- und Back-End-Methoden zur domänenübergreifenden Anforderungsverarbeitung
Das obige ist der detaillierte Inhalt vonAJAX und JSONP implementieren domänenübergreifende Anfragen in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!