আমি কীভাবে জাভাস্ক্রিপ্টের মাধ্যমে ক্রস-ডোমেন POST অনুরোধ পাঠাব?
নোটস - এটি পৃষ্ঠাটি রিফ্রেশ করা উচিত নয় এবং এর পরে আমাকে প্রতিক্রিয়াটি ধরা এবং পার্স করা দরকার।
আমি কীভাবে জাভাস্ক্রিপ্টের মাধ্যমে ক্রস-ডোমেন POST অনুরোধ পাঠাব?
নোটস - এটি পৃষ্ঠাটি রিফ্রেশ করা উচিত নয় এবং এর পরে আমাকে প্রতিক্রিয়াটি ধরা এবং পার্স করা দরকার।
উত্তর:
আপডেট: চালিয়ে যাওয়ার আগে প্রত্যেকের CORS এর html5rocks টিউটোরিয়ালটি পড়া এবং বুঝতে হবে । এটি বোঝা সহজ এবং খুব পরিষ্কার।
আপনি যদি সার্ভারটি পোস্ট করা নিয়ন্ত্রণ করেন তবে কেবল সার্ভারে প্রতিক্রিয়া শিরোনাম সেট করে "ক্রস-অরিজিন রিসোর্স ভাগ করে নেওয়ার মান" উপার্জন করুন। এই উত্তরটি এই থ্রেডের অন্যান্য উত্তরে আলোচনা করা হয়েছে, তবে আমার মতে খুব স্পষ্ট নয়।
সংক্ষেপে এখানে আপনি কীভাবে ক্রম ডোমেন পোস্টটি পোষ্টটি পোস্ট করুন / ডটকম থেকে html থেকে.com/postHere.php (উদাহরণ হিসাবে পিএইচপি ব্যবহার করে) করছেন। দ্রষ্টব্য: আপনাকে কেবল Access-Control-Allow-Origin
নন OPTIONS
অনুরোধের জন্য সেট করতে হবে - এই উদাহরণটি সর্বদা একটি ছোট কোড স্নিপেটের জন্য সমস্ত শিরোনাম সেট করে।
পোস্টহির.এফপি নিম্নলিখিত পদ্ধতিতে সেটআপ করুন:
switch ($_SERVER['HTTP_ORIGIN']) {
case 'http://from.com': case 'https://from.com':
header('Access-Control-Allow-Origin: '.$_SERVER['HTTP_ORIGIN']);
header('Access-Control-Allow-Methods: GET, PUT, POST, DELETE, OPTIONS');
header('Access-Control-Max-Age: 1000');
header('Access-Control-Allow-Headers: Content-Type, Authorization, X-Requested-With');
break;
}
এটি আপনার স্ক্রিপ্টকে ক্রস ডোমেন POST, GET এবং বিকল্পগুলি তৈরি করতে দেয়। আপনি পড়া চালিয়ে যাওয়ার সাথে সাথে এটি পরিষ্কার হয়ে যাবে ...
জেএস (jQuery উদাহরণ) থেকে আপনার ক্রস ডোমেন POST সেটআপ করুন:
$.ajax({
type: 'POST',
url: 'https://to.com/postHere.php',
crossDomain: true,
data: '{"some":"json"}',
dataType: 'json',
success: function(responseData, textStatus, jqXHR) {
var value = responseData.someKey;
},
error: function (responseData, textStatus, errorThrown) {
alert('POST failed.');
}
});
আপনি যখন পদক্ষেপ 2-এ পোস্ট করেন, আপনার ব্রাউজার সার্ভারে একটি "বিকল্প" পদ্ধতি প্রেরণ করবে। এটি সার্ভারটি পোষ্ট করে আপনার সাথে শীতল কিনা তা দেখার জন্য এটি ব্রাউজারের দ্বারা একটি "স্নিফ"। সার্ভারটি "অ্যাক্সেস-কন্ট্রোল-অলজিন-অরিজিন" দিয়ে ব্রাউজারকে পোস্ট করুন | GET | ORIGIN- এ অনুরোধ জানায় যদি অনুরোধটি " http://from.com " বা " https://from.com " থেকে উত্পন্ন হয় with যেহেতু সার্ভারটি এটির সাথে ঠিক আছে, তাই ব্রাউজারটি একটি দ্বিতীয় অনুরোধ করবে (এবার একটি পোষ্ট করুন)। আপনার ক্লায়েন্টটি যে সামগ্রী পাঠাচ্ছে সেটি সেট করা ভাল অনুশীলন - সুতরাং আপনাকে এটিরও অনুমতি দেওয়া দরকার।
এমডিএন এর এইচটিটিপি অ্যাক্সেস নিয়ন্ত্রণ সম্পর্কে একটি দুর্দান্ত রচনা আপ রয়েছে , এটি পুরো প্রবাহ কীভাবে কাজ করে তার বিশদে চলে যায়। তাদের দস্তাবেজ অনুসারে, এটি "ব্রাউজারগুলিতে কাজ করা উচিত যা ক্রস সাইট এক্সএমএলএইচটিএইচপিআরকেস্ট সমর্থন করে"। এটি যদিও কিছুটা বিভ্রান্তিমূলক, কারণ আমি মনে করি কেবল আধুনিক ব্রাউজারগুলি ক্রস ডোমেন পোষ্টের অনুমতি দেয়। আমি কেবল সাফারি, ক্রোম, এফএফ 3.6 দিয়ে এই কাজগুলি যাচাই করেছি।
আপনি যদি এটি করেন তবে নিম্নলিখিত বিষয়গুলি মনে রাখবেন:
400 Bad Request
উপর OPTIONS
অনুরোধ। এবং firefox
দ্বিতীয় অনুরোধ POST
কখনও করা হয় না। :(
আপনি যদি রিমোট সার্ভারটি নিয়ন্ত্রণ করেন তবে আপনার উত্তরটি সম্ভবত বর্ণিত হিসাবে CORS ব্যবহার করা উচিত ; এটি IE8 এবং তারপরে এবং এফএফ, জিসি এবং সাফারি এর সর্বশেষ সংস্করণে সমর্থিত। (তবে আইই 8 এবং 9-তে, সিওআরএস আপনাকে অনুরোধে কুকিজ পাঠানোর অনুমতি দেবে না))
সুতরাং, আপনি যদি রিমোট সার্ভারটি নিয়ন্ত্রণ না করেন, বা আপনার যদি আই 7 সমর্থন করতে হয়, বা আপনার যদি কুকিজের প্রয়োজন হয় এবং আপনার আইই 8/9 সমর্থন করতে হয় তবে আপনি সম্ভবত একটি আইফ্রেমে কৌশল ব্যবহার করতে চাইবেন।
এখানে নমুনা কোড; আমি এটি আই 6, আই 7, আই 8, আই 9, এফ এফ 4, জিসি 11, এস 5 এ পরীক্ষা করেছি।
function crossDomainPost() {
// Add the iframe with a unique name
var iframe = document.createElement("iframe");
var uniqueString = "CHANGE_THIS_TO_SOME_UNIQUE_STRING";
document.body.appendChild(iframe);
iframe.style.display = "none";
iframe.contentWindow.name = uniqueString;
// construct a form with hidden inputs, targeting the iframe
var form = document.createElement("form");
form.target = uniqueString;
form.action = "http://INSERT_YOUR_URL_HERE";
form.method = "POST";
// repeat for each parameter
var input = document.createElement("input");
input.type = "hidden";
input.name = "INSERT_YOUR_PARAMETER_NAME_HERE";
input.value = "INSERT_YOUR_PARAMETER_VALUE_HERE";
form.appendChild(input);
document.body.appendChild(form);
form.submit();
}
সতর্ক থাকুন! আপনি পোষ্টের প্রতিক্রিয়া সরাসরি পড়তে পারবেন না, যেহেতু আলাদা আলাদা ডোমেনে আইফ্রেম বিদ্যমান রয়েছে। ফ্রেমগুলিকে বিভিন্ন ডোমেন থেকে একে অপরের সাথে যোগাযোগের অনুমতি দেওয়া হয় না; এটি একই-উত্স নীতি ।
যদি আপনি রিমোট সার্ভারটি নিয়ন্ত্রণ করেন তবে আপনি কর ব্যবহার করতে পারবেন না (উদাহরণস্বরূপ আপনি IE8 / IE9 এ আছেন এবং আপনার কুকিজ ব্যবহার করা দরকার), একই-উত্স নীতিটি ব্যবহার করার উপায় রয়েছে, উদাহরণস্বরূপ ব্যবহার করে window.postMessage
এবং / অথবা পুরানো ব্রাউজারগুলিতে ক্রস-ডোমেন ক্রস-ফ্রেম বার্তা প্রেরণে মঞ্জুরি দেয় এমন একটি লাইব্রেরির মধ্যে একটি:
আপনি যদি রিমোট সার্ভারটি নিয়ন্ত্রণ করেন না, তবে আপনি POST, পিরিয়ডের প্রতিক্রিয়াটি পড়তে পারবেন না। এটি অন্যথায় সুরক্ষার সমস্যার কারণ হতে পারে।
সুডোকোড
var ifr = document.createElement('iframe');
var frm = document.createElement('form');
frm.setAttribute("action", "yoururl");
frm.setAttribute("method", "post");
// create hidden inputs, add them
// not shown, but similar (create, setAttribute, appendChild)
ifr.appendChild(frm);
document.body.appendChild(ifr);
frm.submit();
আপনি সম্ভবত আইফ্রেমে স্টাইল করতে চান, গোপন এবং একেবারে অবস্থানযুক্ত হতে। নিশ্চিত নয় যে ক্রস সাইট পোস্টিং ব্রাউজারের দ্বারা অনুমোদিত হবে, তবে যদি তা হয় তবে এটি এটি কিভাবে হয়।
সহজবোধ্য রাখো:
ক্রস-ডোমেন পোস্ট:
ব্যবহার করুনcrossDomain: true,
পৃষ্ঠাটি রিফ্রেশ করা উচিত নয়:
না, এটা যেমন পৃষ্ঠাটি রিফ্রেশ করা হবে নাsuccess
বাerror
কলব্যাক ASYNC বলা হবে যখন সার্ভার পাঠাতে ফিরে প্রতিক্রিয়া।
$.ajax({
type: "POST",
url: "http://www.yoururl.com/",
crossDomain: true,
data: 'param1=value1¶m2=value2',
success: function (data) {
// do something with server response data
},
error: function (err) {
// handle your error logic here
}
});
crossDomain: true
অদ্ভুতভাবে সত্যিকারের ক্রস-ডোমেন অনুরোধগুলির সাথে কিছুই করার নেই। যদি অনুরোধটি ক্রস-ডোমেন হয় তবে jquery এটিকে স্বয়ংক্রিয়ভাবে সত্যে সেট করে।
আপনার যদি জড়িত সমস্ত সার্ভারে অ্যাক্সেস থাকে তবে অন্য ডোমেনে অনুরোধ করা পৃষ্ঠার উত্তরটির শিরোনামে নিম্নলিখিতটি লিখুন:
পিএইচপি:
header('Access-Control-Allow-Origin: *');
উদাহরণস্বরূপ, দ্রুপালের xmlrpc.php কোডে আপনি এটি করতে পারেন:
function xmlrpc_server_output($xml) {
$xml = '<?xml version="1.0"?>'."\n". $xml;
header('Connection: close');
header('Content-Length: '. strlen($xml));
header('Access-Control-Allow-Origin: *');
header('Content-Type: application/x-www-form-urlencoded');
header('Date: '. date('r'));
// $xml = str_replace("\n", " ", $xml);
echo $xml;
exit;
}
এটি সম্ভবত একটি সুরক্ষা সমস্যা তৈরি করে এবং আপনার অনুরোধটি যাচাই করার জন্য যথাযথ ব্যবস্থা গ্রহণ করা উচিত তা নিশ্চিত করা উচিত।
Http://taiyolab.com/mbtweet/scriptts/twitterapi_call.js- এ post_method
ফাংশনটি দেখুন - উপরে বর্ণিত iframe পদ্ধতির জন্য একটি ভাল উদাহরণ।
দুটি লুকানো আইফ্র্যাম তৈরি করুন (CSS শৈলীতে "প্রদর্শন: কিছুই নয়" যোগ করুন)। আপনার নিজের ডোমেনের কিছুতে আপনার দ্বিতীয় iframe পয়েন্ট করুন।
একটি লুকানো ফর্ম তৈরি করুন, তার পদ্ধতিটি "পোস্ট" এ সেট করুন = আপনার প্রথম আইফ্রেমে সাথে, এবং বিকল্পভাবে এনকটাইপকে "মাল্টিপার্ট / ফর্ম-ডেটা" সেট করুন (আমি ভাবছি আপনি পোষ্ট করতে চান কারণ আপনি ছবিগুলির মতো মাল্টিপার্ট ডেটা প্রেরণ করতে চান ?)
প্রস্তুত হয়ে গেলে ফর্মটি পোস্ট করুন () পোস্ট করুন।
আপনি যদি জাভাস্ক্রিপ্ট ফেরত দিতে অন্য ডোমেনটি পেতে পারেন যা ইফ্রেমেসের সাথে ক্রস-ডোমেন যোগাযোগ করবে ( http://softwareas.com/cross-domain-communication-with-iframes ) তবে আপনি ভাগ্যবান এবং আপনি প্রতিক্রিয়াটি ক্যাপচার করতে পারেন যেমন.
অবশ্যই, আপনি যদি নিজের সার্ভারকে প্রক্সি হিসাবে ব্যবহার করতে চান তবে আপনি এগুলি এড়াতে পারেন। কেবল আপনার নিজের সার্ভারে ফর্মটি জমা দিন, যা অন্য সার্ভারের কাছে অনুরোধের প্রক্সি করবে (ধরে নিলে অন্য সার্ভার আইপি তাত্পর্য লক্ষ্য করার জন্য সেট আপ করা হয়নি), প্রতিক্রিয়া পাবেন এবং যা যা চান তা ফিরিয়ে দিন।
আরও একটি গুরুত্বপূর্ণ বিষয় লক্ষ্য করুন !!! ইন উদাহরণস্বরূপ এটি কিভাবে ব্যবহার করতে বর্ণিত আছে তা উপরে
$.ajax({
type : 'POST',
dataType : 'json',
url : 'another-remote-server',
...
});
JQuery 1.6 এবং নিম্নের ক্রস-ডোমেন এক্সএইচআর সহ একটি বাগ রয়েছে। ফায়ারব্যাগের মতে অপশন ছাড়া অন্য কোনও অনুরোধ প্রেরণ করা হয়নি। কোনও পোস্ট নেই। মোটেই
আমার কোডটি টেস্টিং / টিউন করার জন্য 5 ঘন্টা ব্যয় করেছে। রিমোট সার্ভারে (স্ক্রিপ্ট) প্রচুর শিরোনাম যুক্ত করা হচ্ছে। কোন প্রভাব ছাড়াই। তবে পরে, আমি জিকুয়ারি লাইবকে 1.6.4 এ আপডেট করেছি এবং সমস্ত কিছুই কবজির মতো কাজ করে।
আপনি jQuery AJAX সঙ্গে ASP.net MVC পরিবেশে এই কাজ করতে চান তাহলে এই পদক্ষেপগুলি অনুসরণ করুন: (এই এ দেওয়া সমাধানের একটি সারাংশ এই থ্রেডে )
ধরে নিন যে "কলার ডট কম" (যে কোনও ওয়েবসাইট হতে পারে) "সার্ভার ডট কম" এ পোস্ট করতে হবে (একটি এএসপি নেটওয়ার এমভিসি অ্যাপ্লিকেশন)
"সার্ভার ডটকম" অ্যাপের ওয়েবকনফিগটিতে নিম্নলিখিত বিভাগটি যুক্ত করুন:
<httpProtocol>
<customHeaders>
<add name="Access-Control-Allow-Origin" value="*" />
<add name="Access-Control-Allow-Headers" value="Content-Type" />
<add name="Access-Control-Allow-Methods" value="POST, GET, OPTIONS" />
</customHeaders>
</httpProtocol>
"সার্ভার ডট কম" এ, আমরা নিয়ামকের উপরে নিম্নলিখিত ক্রিয়াটি করব ("হোম" নামে পরিচিত) যেখানে আমরা পোস্ট করব:
[HttpPost]
public JsonResult Save()
{
//Handle the post data...
return Json(
new
{
IsSuccess = true
});
}
তারপরে "কলার ডটকম" থেকে কোনও ফর্ম (এইচটিএমএল আইডি "ফর্মআইডি" সহ) "সার্ভার ডটকম" সহ নিম্নলিখিত তথ্য পোস্ট করুন:
$.ajax({
type: "POST",
url: "http://www.server.com/home/save",
dataType: 'json',
crossDomain: true,
data: $(formId).serialize(),
success: function (jsonResult) {
//do what ever with the reply
},
error: function (jqXHR, textStatus) {
//handle error
}
});
আরও একটি উপায় আছে (এইচটিএমএল 5 বৈশিষ্ট্য ব্যবহার করে)। আপনি অন্য ডোমেনে হোস্ট করা প্রক্সি ইফ্রেম ব্যবহার করতে পারেন, আপনি সেই আইফ্রেমে পোস্টম্যাসেজ ব্যবহার করে বার্তা প্রেরণ করেন, তারপরে যদি আইফ্রেমে পোষ্ট উইন্ডোতে পোষ্ট অনুরোধ (একই ডোমেনে) এবং পোস্টমেসেজ ফিরে করতে পারে।
প্রেরক.কম এ পিতামাতা
var win = $('iframe')[0].contentWindow
function get(event) {
if (event.origin === "http://reciver.com") {
// event.data is response from POST
}
}
if (window.addEventListener){
addEventListener("message", get, false)
} else {
attachEvent("onmessage", get)
}
win.postMessage(JSON.stringify({url: "URL", data: {}}),"http://reciver.com");
iframe on reciver.com
function listener(event) {
if (event.origin === "http://sender.com") {
var data = JSON.parse(event.data);
$.post(data.url, data.data, function(reponse) {
window.parent.postMessage(reponse, "*");
});
}
}
// don't know if we can use jQuery here
if (window.addEventListener){
addEventListener("message", listener, false)
} else {
attachEvent("onmessage", listener)
}
উচ্চ স্তর .... আপনার সার্ভারে আপনার একটি নাম সেটআপ করা দরকার যাতে অন্যান্য- সংরক্ষণ.your-server.com অন্যান্য-সার্ভার ডট কমকে নির্দেশ করে।
আপনার পৃষ্ঠাটি গতিশীলভাবে একটি অদৃশ্য আইফ্রেমে তৈরি করে, যা অন্যান্য-সার্ভার ডটকমকে আপনার পরিবহণ হিসাবে কাজ করে। তারপরে আপনাকে জেএসের মাধ্যমে আপনার পৃষ্ঠা থেকে অন্যান্য-সার্ভার ডটকম এ যোগাযোগ করতে হবে এবং কল ব্যাক থাকতে হবে যা ডেটা আপনার পৃষ্ঠায় ফিরিয়ে দেয়।
সম্ভাব্য তবে আপনার-server.com এবং অন্যান্য-সার্ভার ডট কম থেকে সমন্বয় প্রয়োজন
আমি মনে করি সর্বোত্তম উপায় হ'ল XMLHttpRequest (যেমন Qu .জ্যাক্স (), Qu। পোষ্ট () jQuery এ) ক্রস-অরিজিন রিসোর্স শেয়ারিং পলিফিল https://github.com/Modernizr/Modernizr/wiki/HTML5- ক্রস-ব্রাউজার Polyfills # উইকি CORS
এটি একটি পুরানো প্রশ্ন, তবে কিছু নতুন প্রযুক্তি কারওর সাহায্য করতে পারে।
আপনার যদি অন্য সার্ভারে প্রশাসনিক অ্যাক্সেস থাকে তবে আপনি ক্রস-ডোমেন পোস্টটি সম্পন্ন করতে ওপেনসোর্স ফোর্জ প্রকল্পটি ব্যবহার করতে পারেন। ফোর্স একটি ক্রস-ডোমেন জাভাস্ক্রিপ্ট এক্সএমএলএইচটিটিপিআরকেস্ট মোড়ক সরবরাহ করে যা ফ্ল্যাশের কাঁচা সকেট এপিআইয়ের সুবিধা নেয়। পোষ্ট এমনকি টিএলএসের মাধ্যমেও করা যেতে পারে।
আপনি যে সার্ভারে পোস্ট করছেন সেটিতে আপনার প্রশাসনিক অ্যাক্সেসের প্রয়োজন হ'ল কারণ আপনাকে অবশ্যই একটি ক্রস-ডোমেন নীতি সরবরাহ করতে হবে যা আপনার ডোমেন থেকে অ্যাক্সেসের অনুমতি দেয়।
আমি জানি এটি একটি পুরানো প্রশ্ন, তবে আমি আমার পদ্ধতির ভাগ করতে চেয়েছিলাম। আমি প্রক্সি হিসাবে খুব সহজ এবং ধারাবাহিক হিসাবে সিআরএল ব্যবহার করি। সাবমিট.এফপি নামে একটি পিএইচপি পৃষ্ঠা তৈরি করুন এবং নিম্নলিখিত কোডটি যুক্ত করুন:
<?
function post($url, $data) {
$header = array("User-Agent: " . $_SERVER["HTTP_USER_AGENT"], "Content-Type: application/x-www-form-urlencoded");
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_HTTPHEADER, $header);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
$response = curl_exec($curl);
curl_close($curl);
return $response;
}
$url = "your cross domain request here";
$data = $_SERVER["QUERY_STRING"];
echo(post($url, $data));
তারপরে, আপনার জেএসে (এখানে jQuery):
$.ajax({
type: 'POST',
url: 'submit.php',
crossDomain: true,
data: '{"some":"json"}',
dataType: 'json',
success: function(responseData, textStatus, jqXHR) {
var value = responseData.someKey;
},
error: function (responseData, textStatus, errorThrown) {
alert('POST failed.');
}
});
ওয়াইকিউএল কাস্টম টেবিল + জেএস এক্সএইচআর দিয়ে সম্ভব হওয়া উচিত, একবার দেখুন: http://developer.yahoo.com/yql/guide/index.html
আমি এটি কিছু ক্লায়েন্ট সাইড (জেএস) এইচটিএমএল স্ক্র্যাপিং করতে ব্যবহার করি, ভাল কাজ করে (ইন্টারনেট / প্লেলিস্ট / লিরিক্স / লাস্ট এফএম তথ্য, সমস্ত ক্লায়েন্ট জেএস + ওয়াইকিউএলএ অনুসন্ধান সহ আমার একটি সম্পূর্ণ অডিও প্লেয়ার রয়েছে)
কর্স আপনার জন্য। কর্স হ'ল "ক্রস অরিজিন রিসোর্স শেয়ারিং", ক্রস ডোমেন অনুরোধ প্রেরণের একটি উপায় the এখন এক্সএমএলএইচটিপিআরকোস্ট 2 এবং ফেচ এপিআই উভয়ই কর্সকে সমর্থন করে এবং এটি পোষ্ট এবং অনুরোধ উভয়ই প্রেরণ করতে পারে
তবে এর সীমাবদ্ধতা রয়েছে er সার্ভারের অ্যাক্সেস-কন্ট্রোল-মঞ্জুরি-উত্স নির্দিষ্ট দাবি করা দরকার এবং এটি '*' তে সেট করা যায় না।
এবং যদি আপনি চান যে কোনও উত্স আপনার কাছে অনুরোধ প্রেরণ করতে পারে, আপনার জেএসএনপি দরকার ( অ্যাক্সেস-কন্ট্রোল-মঞ্জুরি- উত্সও সেট করতে হবে তবে '*' হতে পারে)
প্রচুর অনুরোধের উপায়ের জন্য যদি আপনি কীভাবে পছন্দ করবেন তা জানেন না, আমি মনে করি এটি করার জন্য আপনার একটি সম্পূর্ণ কার্যকরী উপাদান দরকার me আমাকে একটি সাধারণ উপাদানটি উপস্থাপন করুন https://github.com/Joker- জেলি / কেট্টা
আপনি যদি আধুনিক ব্রাউজারটি ব্যবহার করছেন (> আইই 9, ক্রোম, এফএফ, এজ, ইত্যাদি), খুব সাধারণ একটি সৌন্দর্য উপাদান আপনাকে https://github.com/ জোকার- জেলি / কেট্টা ব্যবহার করার পরামর্শ দিচ্ছেন .এর কোনও নির্ভরতা নেই, কম 3KB এর চেয়েও বেশি, এবং এটি একই মারাত্মক নমুনা বাক্য গঠন এবং বিকল্পগুলির সাথে ফ্যাচ, এজেএক্স এবং জেএসএনপি সমর্থন করে।
catta('./data/simple.json').then(function (res) {
console.log(res);
});
এটি ES6 মডিউল, কমনজেএস এবং এমনকি <script>
এইচটিএমএল এর মতো আপনার প্রকল্পেও আমদানির সমস্ত উপায়ে সমর্থন করে ।
আপনার যদি ক্রস ডোমেন সার্ভারে অ্যাক্সেস থাকে এবং সার্ভারের দিক থেকে কোনও কোড পরিবর্তন করতে না চান তবে আপনি - 'xdomain' নামে একটি লাইব্রেরি ব্যবহার করতে পারেন।
কিভাবে এটা কাজ করে:
পদক্ষেপ 1: সার্ভার 1: এক্সডোমেন লাইব্রেরি অন্তর্ভুক্ত করুন এবং ক্রস ডোমেনকে ক্রীতদাস হিসাবে কনফিগার করুন:
<script src="js/xdomain.min.js" slave="https://crossdomain_server/proxy.html"></script>
পদক্ষেপ 2: ক্রস ডোমেন সার্ভারে, একটি প্রক্সি html ফাইল তৈরি করুন এবং সার্ভার 1 কে মাস্টার হিসাবে অন্তর্ভুক্ত করুন:
proxy.html:
<!DOCTYPE HTML>
<script src="js/xdomain.min.js"></script>
<script>
xdomain.masters({
"https://server1" : '*'
});
</script>
ধাপ 3:
এখন, আপনি সার্ভার 1 থেকে শেষ পয়েন্ট হিসাবে প্রক্সি.এইচটিএমএলে একটি এজেএক্স কল করতে পারেন। এটি সিওআরএস অনুরোধটিকে বাইপাস করুন। গ্রন্থাগারটি অভ্যন্তরীণভাবে iframe সমাধান ব্যবহার করে যা শংসাপত্র এবং সমস্ত সম্ভাব্য পদ্ধতির সাথে কাজ করে: জিইটি, পোষ্ট ইত্যাদি with
এজ্যাক্স কোড জিজ্ঞাসা করুন:
$.ajax({
url: 'https://crossdomain_server/proxy.html',
type: "POST",
data: JSON.stringify(_data),
dataType: "json",
contentType: "application/json; charset=utf-8"
})
.done(_success)
.fail(_failed)