4

私は、自分がしなければならないことを行う賢い方法を考え出すのに苦労しています。基本的に、カスタム ビルド CMS エディターによって作成された一般的なサイトがありますが、すべて問題ありません。私が望んでいるのは、ユーザーが CMS エディターにいるときに、バックグラウンドで AJAX 要求を介して、ユーザーが表示しているページをすばやくクエリし、受信したデータに応じて特別な指示を返すことです。そのような:

連絡先ページには、CMS への特別な指示がいくつかあります。おそらく、すべてにタイトルとサブタイトルが必要です。したがって、これらのトリガーは contact.php にコード化されていますが、Web サイトを閲覧している通常の joe には表示されません。フィールドなし。

しかし、ユーザーが私たちの CMS にいるとき、特別なリクエストをhttp://www.something.com/contact.phpに送信するようにします。contact.php は、CMS がドアをノックしていることを認識し、返信します。特別な指示付き。JSON であれ XML であれ、私はうるさいわけではありません。

私が直面している本当の問題は、contact.php にいずれかのバージョンを表示させることです。JSON 文字列を返すことはできますが、応答に他の要素があるため、jQuery Ajax はそれを処理する方法を知りません。jQuery->Ajax がページ全体を無視し、JSON だけを取得できれば問題ありません。

<html>
<body>
<h1>blah blah</h1>
...etc
...etc
<script>var requiredSettings = {[json blah blah blha ]};</script>
<p>loreum ipsum etc..</p>
</body>
</html>

それが私が取り組まなければならないことです.jQuery-> Ajaxリクエストがすべてのwqrongヘッダーとhtmlジャンクを無視し、JSONのみを使用するにはどうすればよいですか.

contact.php がそのまま残り、ユーザーが見ることができる限り、私は他の方法に対して非常にオープンですが、CMS が情報を要求したときに二重の役割を果たし、CMS に報告します。

CMS と contact.php は異なるサーバー上にあります。

お時間をいただきありがとうございます。

4

1 に答える 1

5

PHP ファイルでは、いつでも次のことができます。

if(!empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest') {
    return jsonencode(JSON);
    die();
}

HTML site here.

これは、ページが ajax で要求された場合は json を返し、そうでない場合は HTML 部分 (またはその他) に移動します。

于 2012-10-24T01:09:30.967 に答える