လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> Cross-Domain Header (Cors) တုန့်ပြန်မှုများကိုသတ်မှတ်ပါ

Cross-Domain Header (Cors) တုန့်ပြန်မှုများကိုသတ်မှတ်ပါ

M66 2025-05-28

Cross-domaining ပြ problems နာများသည် Web Development တွင်ဘုံပြ problem နာဖြစ်သည်။ အထူးသဖြင့်သီးခြားရှေ့တန်းအဆင့်နှင့်နောက်ခံအဆုံးလျှောက်လွှာများဖြင့် applications များအရရှေ့တွင်အဆုံးသည်အရင်းအမြစ်များကိုကွဲပြားခြားနားသောဒိုမိန်းအမည်များအောက်တွင်အရင်းအမြစ်များကိုရယူရန်လိုအပ်နိုင်သည်။ ဤအချိန်တွင်ဆာဗာသည် HTTP ခေါင်းစီးများကိုခွင့်ပြုရန် HTTP ခေါင်းစီးများကိုသတ်မှတ်ရန်လိုအပ်သည်။ PHP တွင်ကျွန်ုပ်တို့သည် cross-domain header အချက်အလက်များကိုသတ်မှတ်ရန် header () function ကိုသုံးနိုင်သည်။

1 ။ Cross-Domain ပြ problems နာများနှင့်ဖြေရှင်းနည်းများ

Cross-Domain အရင်းအမြစ်မျှဝေခြင်း (CORs) သည် browser များကိုမတူညီသောဒိုမိန်းများသို့တောင်းဆိုမှုများကိုစတင်ရန်ခွင့်ပြုခြင်းအားဖြင့်ဒိုမိန်းပြ problems နာများကိုဖြေရှင်းနိုင်သည့်ယန္တရားတစ်ခုဖြစ်သည်။ Cors သည်အဓိကအားဖြင့် HTTP ခေါင်းစီးများ, အထူးသဖြင့် ဝင်ရောက်ခွင့် - ခွင့်ပြုထားသော - ဇာစ်မြစ် ပေါ်တွင်အဓိကထားသည်။ Browser တစ်ခုသည် server တစ်ခုတွင်ဆာဗာတစ်ခုတွင်တောင်းဆိုမှုတစ်ခုသို့တောင်းဆိုသောအခါဆာဗာတွင် Cross-domain တောင်းဆိုမှုများကိုအတိအလင်းခွင့်ပြုရန်တုန့်ပြန်မှုခေါင်းစီးတွင် ဝင်ရောက်ခွင့် - ခွင့်ပြုသည့် - မူလအစ တွင်ပါ 0 င်ရန်လိုအပ်သည်။

2 ။ Access-control- ခွင့်ပြု - ဇာစ်မြစ်၏ အသေးစိတ်ရှင်းပြချက်

Access-control-sprey-origent သည် Cors စံသတ်မှတ်ချက်တွင်အဓိကခေါင်းစဉ်တစ်ခုဖြစ်သည်။ ၎င်း၏တန်ဖိုးသည်အောက်ပါကိစ္စများတွင်ဖြစ်နိုင်သည်။

  • * : ဒိုမိန်းအမည်အားလုံးသည်အရင်းအမြစ်ကိုရယူနိုင်သည်ဟုဆိုလိုသည်။

  • http://m66.net : ဤသတ်မှတ်ထားသောဒိုမိန်းအမည်သာအရင်းအမြစ်များကိုရယူခွင့်ပြုသည်။

  • NULL : Cross-Domain တောင်းဆိုမှုများကိုခွင့်မပြုပါ။

ဥပမာအားဖြင့်ကျွန်ုပ်တို့သည် domain name http://m66.net ကို Cross-domain တောင်းဆိုမှုများပြုလုပ်ရန်ခွင့်ပြုလိုပါက PHP script တွင်သက်ဆိုင်ရာ header ကိုသတ်မှတ်ရန်လိုအပ်သည်။

3 ။ PHP ကို ​​အသုံးပြု. Access-control-server-origin ကို သတ်မှတ်ပါ

PHP တွင် HTTP header အချက်အလက်များကိုသတ်မှတ်ခြင်းကို header () function မှတဆင့်အကောင်အထည်ဖော်သည်။ ဒိုမိန်းတောင်းဆိုမှုများကိုခွင့်ပြုရန်အခြေခံအကျဆုံးခြေလှမ်းမှာ Access-control-provale ကို header ကို အသုံးပြု. header () ကို အသုံးပြုသည်။

နမူနာကုဒ်:

 <?php
// ထံမှခွင့်ပြုပါhttp://m66.netCross-Domain တောင်းဆိုမှုများ
header("Access-Control-Allow-Origin: http://m66.net");

// သင်အခြားထောက်ပံ့ရန်လိုအပ်ပါကHTTPနည်းလမ်း(ကဲ့သို့POST、PUT、DELETEစောင့်),ဒါကိုသတ်မှတ်နိုင်ပါတယ်:
header("Access-Control-Allow-Methods: GET, POST, PUT, DELETE");

// ကဲ့သို့果需要允许携带cookie,သင်အောက်ပါခေါင်းစီးကိုသတ်မှတ်ရန်လိုအပ်သည်
header("Access-Control-Allow-Credentials: true");

// ခွင့်ပြုတောင်းဆိုမှုကို header ကိုသတ်မှတ်ပါ
header("Access-Control-Allow-Headers: Content-Type, Authorization");

// လက်တွေ့ကျသော application တွင်,တောင်းဆိုမှု၏အရင်းအမြစ်ဒိုမိန်းအမည်ကိုသင်ဆုံးဖြတ်နိုင်သည်,dynamicy- ဒိုမိန်းခေါင်းလောင်းကို set ကိုရန်
$allowedOrigin = "http://m66.net";
if ($_SERVER['HTTP_ORIGIN'] === $allowedOrigin) {
    header("Access-Control-Allow-Origin: $allowedOrigin");
}
?>

ရှင်းပြပါ:

  • Access-control-slect-origent : သတ်မှတ်ထားသောဒိုမိန်းအမည်ကို Cross-domain တောင်းဆိုမှုများပြုလုပ်ရန်ခွင့်ပြုသည်။ အကယ်. သင်သည်ဒိုမိန်းအမည်မျိုးစုံကိုခွင့်ပြုလိုပါကတောင်းဆိုမှု၏ရင်းမြစ်ကိုသင် dvonatically dvoned relat ်ဌာန်းနိုင်ပြီး domain name များကိုသတ်မှတ်နိုင်သည်။

  • Access-control-provalid-method များ - HTTP နည်းလမ်းများ (ဥပမာ, post, post စသည်) ။

  • Access-control-slect-slire- အထောက်အထားများ - သင်ကွတ်ကီးတစ်ခုကိုပို့ရန်လိုအပ်ပါက header ကို မှန်ကန်စွာ သတ်မှတ်ရန်လိုအပ်သည်။

  • Access-control-head-headers : Custom Report Headers (ဥပမာ - အကြောင်းအရာအမျိုးအစား သို့မဟုတ် ခွင့်ပြုချက် ) ကိုခွင့်ပြုခဲ့သည်။

4 ။ လေယာဉ်ခရီးစဉ်တောင်းဆိုမှု (ရွေးချယ်စရာများ)

Browser သည်ရှုပ်ထွေးသော cross-domain တောင်းဆိုမှုများကိုစတင်သောအခါ (ဥပမာ - ထုံးစံခေါင်းစီးများကဲ့သို့သောသို့မဟုတ်ဖျက်ခြင်း, ဖျက်ခြင်းနည်းလမ်းများစသည်တို့) ကို စတင်သည်။ ဤတောင်းဆိုချက်သည်ဆာဗာသည်ကူးသန်းရောင်းမီဒီယာတောင်းဆိုမှုများကိုခွင့်ပြုမရှိမရှိစစ်ဆေးရန်ဖြစ်သည်။ Preflight တောင်းဆိုမှုကိုတုန့်ပြန်မှုတွင်ဆာဗာသည်သက်ဆိုင်ရာ Cors header ကိုပြန်ပို့ရန်လည်းလိုအပ်သည်။

ဥပမာအားဖြင့်:

 <?php
if ($_SERVER['REQUEST_METHOD'] === 'OPTIONS') {
    // Pre- လေယာဉ်ခရီးစဉ်တောင်းဆိုမှုများ process
    header("Access-Control-Allow-Origin: http://m66.net");
    header("Access-Control-Allow-Methods: GET, POST, PUT, DELETE");
    header("Access-Control-Allow-Headers: Content-Type, Authorization");
    header("Access-Control-Allow-Credentials: true");
    exit();
}
?>

ရှင်းပြပါ -

  • Options တောင်းဆိုမှုများသည်အမှန်တကယ်အချက်အလက်များကိုပြန်ပို့ရန်မလိုအပ်ပါ။

5 ။ အကျဉ်းချုပ်

PHP ၏ header () function ကိုအသုံးပြုခြင်းအားဖြင့်ကျွန်ုပ်တို့သည်စင်ကာပူဒိုမိန်းအမည်များကိုသတ်မှတ်ထားသောဒိုမိန်းအမည်များကိုခွင့်ပြုရန် ဒိုမိန်း နှင့်သက်ဆိုင်သော HTTP ခေါင်းစီးများ, အမှန်တကယ်လိုအပ်ချက်များအရလုံခြုံရေးနှင့်လုပ်ဆောင်နိုင်စွမ်းကိုမျှတမှုရှိစေရန် Cors ပေါ်လစီများကိုကျွန်ုပ်တို့ပြောင်းလဲစေနိုင်သည်။

Cross-Domain အရင်းအမြစ်ဝေမျှခြင်းသည် web application များတွင်လျစ်လျူရှုမရသောပြ problem နာတစ်ခုဖြစ်သည်။ PHP တွင် Cors Headers ကိုမည်သို့ configure လုပ်နည်းကိုမည်သို့ configure လုပ်ရမည်ကိုမည်သို့ပြုလုပ်ရမည်ကိုအထောက်အကူပြုပြီးသင်၏လျှောက်လွှာ၏လက်လှမ်းမီနိုင်မှုနှင့်အချည်းနှီးသက်သက်ကိုတိုးတက်စေသည်။