All Products
Search
Document Center

Mobile Platform as a Service:Berbagi Sumber Daya Lintas Asal (CORS)

Last Updated:Jun 24, 2025

Akses lintas asal mengacu pada permintaan sumber daya dari domain, protokol, atau port yang berbeda dari sumbernya sendiri.

Browser menerapkan kebijakan asal yang sama demi alasan keamanan, yang membatasi permintaan lintas asal dalam skrip. Namun, akses lintas asal sering terjadi dalam praktiknya. Oleh karena itu, W3C menyediakan solusi standar untuk lintas asal: Berbagi Sumber Daya Lintas Asal (CORS), yang mendukung permintaan lintas asal yang aman dan transmisi data.

Browser membagi permintaan CORS menjadi dua jenis:

  • Permintaan sederhana

  • Permintaan pra-pemeriksaan: Mekanisme perlindungan untuk mencegah modifikasi sumber daya oleh permintaan tidak sah. Browser mengirimkan permintaan pra-pemeriksaan dengan metode OPTIONS sebelum permintaan aktual, untuk mengetahui apakah server mengizinkan permintaan lintas asal. Setelah konfirmasi izin diterima, permintaan HTTP aktual dilakukan.

Permintaan sederhana

Permintaan sederhana memenuhi kondisi berikut:

  • Metode permintaan adalah salah satu dari berikut ini:

    • HEAD

    • GET

    • POST

  • Header HTTP hanya mencakup bidang berikut:

    • Cache-Control

    • Content-Language

    • Content-Type

    • Expires

    • Last-Modified

    • Pragma

    • DPR

    • Downlink

    • Save-Data

    • Viewport-Width

    • Width

  • Nilai dari Content-Type hanya mencakup tipe berikut:

    • text/plain

    • multipart/form-data

    • application/x-www-form-urlencoded

Permintaan pra-pemeriksaan

Untuk semua permintaan yang tidak memenuhi kondisi permintaan sederhana, permintaan OPTIONS dipicu sebagai pra-pemeriksaan sebelum komunikasi aktual. Jenis permintaan ini disebut Permintaan pra-pemeriksaan.

Permintaan pra-pemeriksaan mengirimkan informasi formal ke server melalui header permintaan, termasuk:

  • Origin: Informasi sumber permintaan.

  • Access-Control-Request-Method: Metode permintaan berikutnya, seperti POST atau GET.

  • Access-Control-Request-Headers: Daftar header eksplisit dalam permintaan berikutnya.

Setelah menerima permintaan pra-pemeriksaan, server menentukan apakah permintaan lintas asal diizinkan berdasarkan informasi header, dan mengembalikan respons melalui header berikut:

  • Access-Control-Allow-Origin: Daftar origin lintas asal yang diizinkan.

  • Access-Control-Allow-Methods: Daftar metode lintas asal yang diizinkan.

  • Access-Control-Allow-Headers: Daftar header lintas asal yang diizinkan.

  • Access-Control-Expose-Headers: Daftar header yang diizinkan untuk diekspos.

  • Access-Control-Max-Age: Maksimum waktu cache browser dalam detik.

  • Access-Control-Allow-Credentials: Apakah pengiriman Cookie diizinkan.

Browser menentukan apakah akan melanjutkan permintaan aktual berdasarkan informasi CORS yang dikembalikan. Proses ini dilakukan secara otomatis oleh browser, sementara server hanya perlu mengonfigurasi aturan CORS tertentu.

Dukungan untuk CORS

MGS menyediakan fungsi untuk mengonfigurasi aturan CORS, memungkinkan sistem bisnis memutuskan apakah mengizinkan permintaan lintas asal tertentu. Aturan tersebut dikonfigurasi berdasarkan dimensi appId + workspaceId.

Konfigurasi CORS

Masuk ke konsol mPaaS dan ikuti langkah-langkah berikut:

  1. Di bilah navigasi kiri, klik Mobile Gateway Service.

  2. Di halaman tab Manage gateway, klik tab Function switch untuk mengonfigurasi CORS.

Setelah mengaktifkan CORS, semua layanan API aplikasi di workspace saat ini mendukung permintaan lintas asal sesuai dengan konfigurasi berikut:

  • Asal yang diizinkan: Access-Control-Allow-Origin, mendukung beberapa asal dipisahkan dengan koma, serta karakter wildcard “*”.

  • Metode yang diizinkan: Access-Control-Allow-Methods, mendukung beberapa metode.

  • Header yang diizinkan: Access-Control-Allow-Headers, mendukung beberapa header dipisahkan dengan koma, serta karakter wildcard “*”.

  • Header yang diekspos: Access-Control-Expose-Headers, mendukung beberapa header dipisahkan dengan koma, tetapi tidak mendukung karakter wildcard “*”.

  • Masa berlaku: Access-Control-Max-Age, maksimum waktu cache browser dalam detik.

  • Izinkan kredensial: Access-Control-Allow-Credentials, apakah pengiriman Cookie diizinkan.

Permintaan lintas asal

Permintaan API lintas asal harus menyertakan header permintaan X-CORS-${appId}-${workspaceId}. Saat permintaan pra-pemeriksaan tiba di gateway, gateway mem-parsing X-CORS-${appId}-${workspaceId} di Access-Control-Request-Headers untuk mendapatkan appId dan workspaceId, lalu mengambil konfigurasi CORS yang sesuai. Header permintaan lintas asal gateway harus mencakup informasi berikut:

  • X-CORS-\${AppId}-\${WorkspaceId}: Wajib. Ganti placeholder dengan AppID dan WorkspaceId yang sebenarnya.

  • Operation-Type

  • WorkspaceId

  • AppId

  • Content-Type

  • Version

$.ajax({
    url: 'http://${mpaasgw_host}/mgw.htm',// Masukkan alamat gateway
    headers: {
      'X-CORS-${appId}-${workspaceId}':'1' // Bagian ini wajib
      'Operation-Type':${operationType}, // Masukkan operationType
      'AppId':${appId}, // Masukkan appId
      'WorkspaceId':${worksapceId}, // Masukkan worksapceId
      'Content-Type':'application/json',
      'Version':'2.0',
    },
    type: 'POST',
    dataType: 'json',
    data: JSON.stringify(reqData),
    success: function(data){}
  });
null

Untuk header yang diizinkan dalam CORS, tambahkan atau atur “*” sesuai dengan situasi sebenarnya.