উত্তর:
ড্রুপাল 7 এর জন্য এপিআইতে বিশেষ কিছু নেই, কেবল সরল পিএইচপি ব্যবহার করুন:
if (!empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest') {
// AJAX request
}
ড্রুপাল 8 এর জন্য, সিমফোনির অনুরোধ অবজেক্টটির একটি সহায়ক পদ্ধতি রয়েছে:
// Example for brevity only, inject the request_stack service and call
// getCurrentRequest() on it to get the request object if possible.
$request = \Drupal::request();
$is_ajax = $request->isXmlHttpRequest();
পাথটিতে "আজাক্স" শব্দটি রয়েছে কিনা তা পরীক্ষা করার জন্য আপনি আপনার হুকটিতে কারেন্ট_পথ () ব্যবহার করার বিষয়টি বিবেচনা করতে পারেন।
উদা:
$current_path = current_path();
if (strpos($current_path, 'ajax') !== false) {
echo 'AJAX request detected!';
exit;
}
যেহেতু এজেএক্স অনুরোধটি পরীক্ষা করার কোনও বুলেট-প্রুফ পদ্ধতি নেই (যেমন HTTP_X_REQUESTED_WITH
ছদ্মবেশী হতে পারে), ইউআরএল ভিত্তিক এখানে অন্য একটি বিকল্প রয়েছে:
if (end((arg())) == 'ajax') {
// AJAX request
}
দেখার জন্য কাজ করে (যখন সর্বশেষ ইউআরআই আইটেমটিতে 'এজাক্স' শব্দ থাকে))
আরও দেখুন: অনুরোধটি পিএইচপি-র সাথে একটি এজেএক্স অনুরোধ কিনা তা কীভাবে পরীক্ষা করবেন?
দ্রুপালে ফর্ম নিয়ে কাজ করার সুযোগে এজেএক্স অনুরোধটির অর্থ এই হবে যে ফর্মটি অবশ্যই পুনর্নির্মাণ করতে হবে। সেই ফর্মটি সনাক্ত করতে অবশ্যই পুনরায় বিল্ডিং করা উচিত:
$form_state['rebuild'] == TRUE;
আমি এটি কীভাবে ব্যবহার করেছি:
$request = $_SERVER['REQUEST_URI']
সেখানে আমি? _আপনার_ফর্ম্যাট = দ্রুপাল_জ্যাক্স সনাক্ত করেছি