আপনি যদি ব্রাউজার থেকে এই ত্রুটি বার্তাটি পান:
অনুরোধকৃত উত্সটিতে কোনও 'অ্যাক্সেস-কন্ট্রোল-অলজন-অরিজিন' শিরোনাম উপস্থিত নেই। উত্স '...' এর ফলে অ্যাক্সেসের অনুমতি নেই
যখন আপনি আপনার নিয়ন্ত্রণের বাইরে থাকা কোনও রিমোট সার্ভারে অ্যাজাক্স পোস্ট / জিইটি অনুরোধ করার চেষ্টা করছেন, দয়া করে এই সাধারণ সমাধানটি ভুলে যান:
<?php header('Access-Control-Allow-Origin: *'); ?>
আপনার সত্যিই যা করা দরকার, বিশেষত যদি আপনি কেবল অ্যাজাক্স অনুরোধটি করতে জাভাস্ক্রিপ্ট ব্যবহার করেন তবে এটি একটি অভ্যন্তরীণ প্রক্সি যা আপনার ক্যোয়ারী গ্রহণ করে এবং এটি রিমোট সার্ভারের মাধ্যমে প্রেরণ করে।
আপনার জাভাস্ক্রিপ্টে প্রথমে নিজের সার্ভারে একটি অ্যাজাক্স কল করুন, এরকম কিছু:
$.ajax({
url: yourserver.com/controller/proxy.php,
async:false,
type: "POST",
dataType: "json",
data: data,
success: function (result) {
JSON.parse(result);
},
error: function (xhr, ajaxOptions, thrownError) {
console.log(xhr);
}
});
তারপরে, আপনার পোস্টের ডেটা মোড়ানো এবং পরামিতি হিসাবে দূরবর্তী ইউআরএল সার্ভারে যুক্ত করতে প্রক্সি.এইচপি নামে একটি সাধারণ পিএইচপি ফাইল তৈরি করুন। এক্সপিডিয়া হোটেল অনুসন্ধান API দিয়ে আমি কীভাবে এই সমস্যাটিকে বাইপাস করি তার একটি উদাহরণ দিচ্ছি:
if (isset($_POST)) {
$apiKey = $_POST['apiKey'];
$cid = $_POST['cid'];
$minorRev = 99;
$url = 'http://api.ean.com/ean-services/rs/hotel/v3/list?' . 'cid='. $cid . '&' . 'minorRev=' . $minorRev . '&' . 'apiKey=' . $apiKey;
echo json_encode(file_get_contents($url));
}
করেছে:
echo json_encode(file_get_contents($url));
আপনি কেবল একই কোয়েরিটি করছেন তবে সার্ভারের দিকে এবং তার পরে, এটি ঠিক কাজ করবে should