Szenario: Das Projekt verfügt über zwei verschiedene Möglichkeiten, Ajax-Anfragen und normale Anfragen zu verarbeiten, z. B. Fehlerbehandlung. Wenn beim Zugriff über den Browser ein Fehler auftritt, springen Sie zur DEBUG-Seite. Dies ist ein von mir selbst geschriebenes Framework, eine Stilkopie von ThinkPHP, da ich nur ein rein technischer Mensch bin. Entschuldigung - -): Zurück zum Betreff. Wenn es sich um eine Ajax-Anfrage handelt, muss ich die Informationen im JSON-Format zurückgeben. Dies ist für die Verarbeitung durch das Frontend (JS, IOS, ANDROID usw.) geeignet >
Dann benötigen wir auf der Serverseite ein Tag, um zu erkennen, ob es sich bei dieser Anfrage um eine Ajax-Anfrage oder eine normale Anfrage handelt. Ich beziehe mich hier auf die JQuery-Methode. Viele Leute wissen, dass js über die setRequestHeader-Methode des XMLHttpRequest-Objekts festgelegt werden kann. Wenn diese Anforderung jedoch vom Server gesendet wird, lautet die Verarbeitungsmethode wie folgt:
Auf diese Weise können Sie $_SERVER['
HTTP_X_REQUESTED_WITH
in PHP<span>function </span><span>Get</span><span>(</span><span>$url</span><span>)</span>
<span><span>{</span></span>
<span><span><span></span>$ch </span><span>= </span><span><em>curl_init</em></span><span>(); </span><span><em><span></span>curl_setopt</em></span><span>(</span><span>$ch</span><span>, </span><span><em>CURLOPT_URL</em></span><span>, </span><span>$url</span><span>); </span><span><em><span></span>curl_setopt</em></span><span>(</span><span>$ch</span><span>, </span><span><em>CURLOPT_HEADER</em></span><span>, </span><span>0</span><span>); </span><span><em><span></span>curl_setopt</em></span><span>(</span><span>$ch</span><span>, </span><span><em>CURLOPT_RETURNTRANSFER</em></span><span>, </span><span>1</span><span>);</span></span>
<span></span><pre class="brush:php;toolbar:false"><span><span><span></span>$HEADER </span><span>= </span><span>array</span><span>( </span><span><span></span></span><span>'X-REQUESTED-WITH: XMLHTTPREQUEST' </span><span><span></span>); </span><span><em><span></span>curl_setopt</em></span><span>(</span><span>$ch</span><span>, </span><span><em>CURLOPT_HTTPHEADER</em></span><span>, </span><span>$HEADER</span><span>); </span><span><span></span>$return </span><span>= </span><span><em>curl_exec</em></span><span>(</span><span>$ch</span><span>); </span><span><em><span></span>curl_close</em></span><span>(</span><span>$ch</span><span>); </span><span></span><span><span></span>return </span><span>$return</span><span>;</span></span>
<span><span>}</span></span>
<span>总结: 设置的头如: A-B-C, 在_SERVER变量中打印出来的key会变成 HTTP_A_B_C的形式.</span>