تابستون داره تموم میشه ها، فرصت‌ها محدودن کلی آفر جذاب در کمپین تابستون🔥👇
۰ ثانیه
۰ دقیقه
۰ ساعت
۱ علی حبیبی
جواب درخواست ajax
محسن موحد حل شده توسط محسن موحد

سلام استاد همون جور که فرمودید اولین چیزی که داخل صفحه مقصد درخواست echo ، ajax بشود به عنوان پاسخ برگشت داده میشود یعنی بقیه کد‌های بعد اکو اجرا نمیشوند(درسته جمله ایی که گفتم؟ این کد‌ها تا زمان اولین اکو اجرا میشوند؟)

و قسمت دوم سوالم اینکه ایا میشه صفحه مقصد درخواست ajax همین صفحه ایی باشه که با js داریم درخواست ajax رو تنظیم میکنیم؟؟ و اگر این بشه بقیه کد‌های صفحه اجرا نمیشوند چون تا اولین اکو کد‌ها ظاهرا اجرا میشوند

من نتیجه گیریم اینه که حتما باید درخواست به صفحه دیگری برود درسته؟؟

سلام.

تعریفتون یخورده اشتباهه!

درخواست سمت صفحه مقصد ارسال میشه، و صفحه ی مقصد هر چی خروجی تولید کنه رو برمیگردونه به درخواست دهنده ی ajax.

یعنی چی، برای مثال صفحه مقصد به شکل زیر هست:

<!DOCTYPE html>
<html>
<head>
	<title>title</title>
</head>
<body>
    any contents
</body>
</html>

تمام محتوای بالا بصورت خروجی برمیگرده. یا مثلا به شکل زیر:

<!DOCTYPE html>
<html>
<head>
	<title><?= $title ?></title>
</head>
<body>
    <?= $content ?>
</body>
</html>

یا به شکل زیر:

<?php
echo '<!DOCTYPE html>' . PHP_EOL;
echo '<html>' . PHP_EOL;
echo '<head>' . PHP_EOL;
echo '	<title>'. $title .'</title>' . PHP_EOL;
echo '</head>' . PHP_EOL;
echo '<body>' . PHP_EOL;
echo $content;
echo '</body>' . PHP_EOL;
echo '</html>' . PHP_EOL;

تمام خروجی تولید شده، برمیگرده. حتی صفحه ی مقصد میتونه یه فایل تکست باشه و ...

حتی اگر کد PHP خطایی تولید کنه، اون خطا هم بعنوان خروجی به درخواست دهنده ی ajax برمیگرده.

این مثالارو گفتم که بگم، ajax دقیقا مثل خود مرورگره، انگار یه مروگر توو دل مرورگر وجود داره که در بکگروند صفحه اجرا میشه، و درخواستی که ارسال میشه، هرگونه محتوایی در خروجی تولید بشه، به سمت درخواست ajax برمیگرده.

بنابراین شما نمیتونید توو صفحه ای که درخواست ajax مینویسید، همونجا هم درخواستو پاس بدید، چون تمام کدهای html و js صفحه و ... بعنوان خروجی برگشت داده میشه!

پس در نتیجه درخواست باید به صفحه ای اصطلاحا clean ارسال شود تا محتوای مد نظرتون رو تولید کنید.

بهترین پاسخ
محسن موحد ۲۶ فروردین ۱۳۹۹، ۱۲:۳۸