Heim > Backend-Entwicklung > PHP-Tutorial > AJAX und JSONP implementieren domänenübergreifende Anfragen in PHP

AJAX und JSONP implementieren domänenübergreifende Anfragen in PHP

小云云
Freigeben: 2023-03-21 07:06:02
Original
2693 Leute haben es durchsucht

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>
Nach dem Login kopieren

ajax.js

$.ajax({
    type : "post",
    url : "ajax.php",
    dataType : "jsonp",
    jsonp: "callback",//传递给请求处理程序或页面的,用以获得jsonp回调函数名的参数名(默认为:callback)
    jsonpCallback:"success_jsonpCallback",//自定义的jsonp回调函数名称,默认为jQuery自动生成的随机函数名
    success : function(json){
        alert(&#39;success&#39;);
    },
    error:function(){
        alert(&#39;fail&#39;);
    }
});
Nach dem Login kopieren

ajax.php

<?php
 
$data = ".......";
$callback = $_GET[&#39;callback&#39;];
echo $callback.&#39;(&#39;.json_encode($data).&#39;)&#39;;
exit;
 
?>
Nach dem Login kopieren

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>
Nach dem Login kopieren

ajax.js

$(document).ready(function(){
 
    $("#btn").click(function(k) {
        //...
        var j = $("form").serializeArray();//序列化name/value
        $.ajax({
            type: &#39;GET&#39;,  //这里用GET
            url: &#39;ajax.php&#39;,
            dataType: &#39;jsonp&#39;,  //类型
            data: j,
            jsonp: &#39;callback&#39;, //jsonp回调参数,必需
            async: false,
            success: function(result) {//返回的json数据
                alert(result.message); //回调输出
                 
                result = result || {};
                if (result.msg==&#39;err&#39;){
                    alert(result.info);
                }else if (result.msg=="ok"){
                    alert(&#39;提交成功&#39;);
                }else{
                    alert(&#39;提交失败&#39;);
                }
                 
            },
            timeout: 3000
        })
        //...
    });
     
});
Nach dem Login kopieren

ajax.php

<?php
$callback = isset($_GET[&#39;callback&#39;]) ? trim($_GET[&#39;callback&#39;]) : &#39;&#39;; //jsonp回调参数,必需
$date = array("age"=>$_GET[&#39;age&#39;], "message"=>$_GET[&#39;age&#39;]);
$date["msg"]="err";
$date["info"]="因人品问题,发送失败";
$tmp= json_encode($date); //json 数据
echo $callback . &#39;(&#39; . $tmp .&#39;)&#39;;  //返回格式,必需
?>
Nach dem Login kopieren

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

Vue verwendet eine detaillierte Erklärung der domänenübergreifenden Anforderungsdateninstanz von Axios

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!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage