jquery - আমার জাভাস্ক্রিপ্ট কেন একটি "না 'অ্যাক্সেস-কন্ট্রোল-অনুমতি-অরিজিনের শিরোনামটি অনুরোধ করা সংস্থানে উপস্থিত হয়" পোস্টমেন না হলে ত্রুটি?




cors restful-authentication (20)

এটি উত্পাদনের জন্য একটি ফিক্স নয় অথবা যখন ক্লায়েন্টকে অ্যাপ্লিকেশনটি দেখানো হবে তখন এটি কেবল তখনই সহায়ক হবে যখন UI এবং ব্যাকঅ্যান্ড ডেভেলপমেন্ট বিভিন্ন সার্ভারগুলিতে এবং উত্পাদনে তারা একই সার্ভারে থাকবে। উদাহরণস্বরূপ: কোনও অ্যাপ্লিকেশনের জন্য UI তৈরির সময় এটি স্থানীয়ভাবে এটি ব্যাক-আপ সার্ভারে ইঙ্গিত করার জন্য পরীক্ষা করার প্রয়োজন হয় তবে, সেই দৃশ্যকল্পতে এটি নিখুঁত সমাধান। উত্পাদনের ফিক্সের জন্য, CORS হেডারগুলি ক্রস মূল অ্যাক্সেসের অনুমতি দেওয়ার জন্য ব্যাকএন্ড সার্ভারে যুক্ত করতে হবে।

সহজ উপায়টি হল CORS ব্যবহার করে অ্যাক্সেস মঞ্জুর করার জন্য গুগল ক্রোমে এক্সটেনশান যুক্ত করা।

( https://chrome.google.com/webstore/detail/allow-control-allow-origi/nlfbmbojpeacfghkpbjhddihlkkiljbi?hl=en-US )

যখনই আপনি 'অ্যাক্সেস-নিয়ন্ত্রণ-অনুমতি-মূল' শিরোনামের অনুরোধের অ্যাক্সেসের অনুমতি দিতে চান তখনই এই এক্সটেনশানটি সক্ষম করুন।

অথবা

উইন্ডোজ, রান উইন্ডোতে এই কমান্ডটি পেস্ট করুন

chrome.exe --user-data-dir="C:/Chrome dev session" --disable-web-security

এটি একটি নতুন ক্রোম ব্রাউজার খুলবে যা কোনও অ্যাক্সেস-নিয়ন্ত্রণ-অনুমতি-মূল শিরোনাম অনুরোধ অ্যাক্সেসের অনুমতি দেয় না

আমি Flask নির্মিত RESTful API সংযুক্ত করে JavaScript ব্যবহার JavaScript অনুমোদন করার চেষ্টা করছি। যাইহোক, যখন আমি অনুরোধ করি, তখন আমি নিম্নলিখিত ত্রুটিটি পেতে পারি:

XMLHttpRequest http: // myApiUrl / লগইন লোড করতে পারে না। না 'অ্যাক্সেস-কন্ট্রোল-অনুমতি-অরিজিন' শিরোনাম অনুরোধ করা সংস্থানে উপস্থিত। মূল 'নাল' অতএব অ্যাক্সেস অনুমতি দেওয়া হয় না।

আমি জানি যে API বা রিমোট রিসোর্সটি শিরোনাম সেট করতে হবে, তবে কেন আমি ক্রোম এক্সটেনশান Postman মাধ্যমে অনুরোধ করলে এটি কাজ করে?

এই অনুরোধ কোড:

$.ajax({
    type: "POST",
    dataType: 'text',
    url: api,
    username: 'user',
    password: 'pass',
    crossDomain : true,
    xhrFields: {
        withCredentials: true
    }
})
    .done(function( data ) {
        console.log("done");
    })
    .fail( function(xhr, textStatus, errorThrown) {
        alert(xhr.responseText);
        alert(textStatus);
    });

Ajax ব্যবহার করে একটি ক্রস ডোমেন সমস্যা আছে। আপনি নিশ্চিত হবেন যে আপনি আপনার ফাইলগুলি একই http:// পাথে www. ছাড়া অ্যাক্সেস করছেন www. (অথবা http://www. থেকে অ্যাক্সেস এবং www. সহ একই পথে পোস্ট করুন www. ) যা www. মাধ্যমে অ্যাক্সেস করার সময় ব্রাউজারটি অন্য ডোমেন হিসাবে বিবেচনা করে www. পথ, তাই আপনি সমস্যা যেখানে দেখতে। আপনি একটি ভিন্ন ডোমেনে পোস্ট করছেন এবং ব্রাউজার মূল সমস্যাটির কারণে প্রবাহটিকে ব্লক করে।

আপনি যদি অনুরোধ করছেন যে একই হোস্টে API স্থাপন করা হয় না, প্রবাহ অবরুদ্ধ করা হয়, এবং আপনি API সঙ্গে যোগাযোগ করার অন্য উপায় খুঁজে বের করতে হবে।


আপনি Node.js ব্যবহার করছেন, এটি ব্যবহার করে দেখুন:

app.use(function(req, res, next) {
    res.header("Access-Control-Allow-Origin", "*");
    res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
    next();
});

আরো তথ্য: ExpressJS উপর CORS


আপনি PHP ব্যবহার করা হয় তাহলে এটি সমাধান করা খুব সহজ। শুধু আপনার পিএইচপি পৃষ্ঠার শুরুতে নিম্নলিখিত স্ক্রিপ্ট যোগ করুন যা অনুরোধটি পরিচালনা করে:

<?php header('Access-Control-Allow-Origin: *'); ?>

সতর্কতা: এটি আপনার পিএইচপি ফাইলের জন্য একটি নিরাপত্তা সমস্যা রয়েছে যা এটি আক্রমণকারীদের দ্বারা বলা যেতে পারে। এই আক্রমণের বিরুদ্ধে আপনার ফাইল / পরিষেবাদি রোধ করার জন্য আপনাকে প্রমাণীকরণের জন্য সেশন এবং কুকিজগুলি ব্যবহার করতে হবে। আপনার সেবা ক্রস সাইট অনুরোধ জালিয়াতি (CSRF) এর জন্য ঝুঁকিপূর্ণ।

আপনি যদি Node-red ব্যবহার করেন তবে নিম্নলিখিত লাইনগুলি অন-মন্তব্য করে আপনাকে node-red/settings.js সেটিংস.জে.এস. ফাইলে CORS মঞ্জুর করতে হবে:

// The following property can be used to configure cross-origin resource sharing
// in the HTTP nodes.
// See https://github.com/troygoode/node-cors#configuration-options for
// details on its contents. The following is a basic permissive set of options:
httpNodeCors: {
 origin: "*",
 methods: "GET,PUT,POST,DELETE"
},

আপনি যদি এন্টিটি ফ্রেমওয়ার্ক ব্যবহার করেন তবে মনে হয় যে এই ত্রুটিটি কখনও কখনও CORS সক্ষম থাকলেও তা সরিয়ে দেওয়া হবে। আমি বুঝলাম যে ত্রুটির কারণে অনুপস্থিতির চূড়ান্ত পরিণতি ঘটেছে। আমি এই একই পরিস্থিতিতে অন্যদের সাহায্য করবে আশা করছি।

নিচের কোডটি XMLHttpRequest cannot load http://myApiUrl/login. No 'Access-Control-Allow-Origin' header is present on the requested resource. হ্রাস XMLHttpRequest cannot load http://myApiUrl/login. No 'Access-Control-Allow-Origin' header is present on the requested resource. XMLHttpRequest cannot load http://myApiUrl/login. No 'Access-Control-Allow-Origin' header is present on the requested resource. ত্রুটি:

using (DBContext db = new DBContext())
{
    return db.Customers.Select(x => new
    {
        Name = x.Name,
        CustomerId = x.CustomerId,
    });
}

এটি ঠিক করার জন্য, একটি চূড়ান্তকরণ কল মত। .ToList() অথবা .ToList() প্রয়োজন হয়, যেমন:

using (DBContext db = new DBContext())
{
    return db.Customers.Select(x => new
    {
        Name = x.Name,
        CustomerId = x.CustomerId,
    }).ToList();
}

আপনি যদি JSON সাথে ফেরত দিতে পারেন তবে ডোমেনগুলির মধ্যে কথা বলার জন্য JSONP (শেষ পর্যন্ত P নোট করুন) ব্যবহার করে দেখুন:

$.ajax({
  type: "POST",
  dataType: 'jsonp',
  ...... etc ......

here JSONP এর সাথে কাজ করার বিষয়ে আরো জানুন:

JSONP এর আবির্ভাব - মূলত একটি সম্মিলিত ক্রস-সাইট স্ক্রিপ্টিং হ্যাক - সামগ্রীটির শক্তিশালী ম্যাশআপগুলির দরজা খোলা হয়েছে। অনেক বিশিষ্ট সাইটগুলি আপনাকে JSONP পরিষেবাদি সরবরাহ করে, যা আপনাকে পূর্বনির্ধারিত API এর মাধ্যমে তাদের সামগ্রীতে অ্যাক্সেস করার অনুমতি দেয়।


আমি Htaccess ব্যবহার করে সফলভাবে (ফন্টের জন্য আমার ক্ষেত্রে) সফলভাবে সক্ষম করতে সক্ষম হয়েছিলাম কিন্তু অবশ্যই, অপারেটিং সিস্টেমটি একটু ভিন্ন জিজ্ঞাসা করছে। কিন্তু আপনি FileMatch প্যাটার্ন ব্যবহার করতে পারেন এবং এক্সটেনশানটির যেকোনো ধরণের যোগ করতে পারেন যাতে এটি ক্রস ত্রুটি না দেয়।

<IfModule mod_headers.c>
  <FilesMatch "\.(ttf|ttc|otf|eot|woff|woff2|font.css|css)$">
    Header set Access-Control-Allow-Origin "*"
  </FilesMatch>
</IfModule>

https://httpd.apache.org/docs/2.4/mod/core.html#filesmatch


আমি অনেক আগে আমার সাথে এই সাইটটি ভাগ করে নিতে চাই http://cors.io/ এটি আমার নিজস্ব প্রক্সি নির্মাণ এবং নির্ভর করে তুলনায় একটি টন সময় বাঁচতে পারে। যাইহোক, আপনি যখন উত্পাদনতে যান তখন আপনার নিজের প্রক্সি থাকা আপনার পক্ষে সেরা তথ্য।

যা তোমার দরকার:

https://cors.io/?http://HTTP_YOUR_LINK_HERE


কারণ
$ .ajax ({টাইপ: "পোস্ট" - বিকল্পগুলি কল করুন
$। পোস্ট ( - পোস্ট কল

উভয়ই ভিন্ন ভিন্ন পোস্টম্যান সঠিকভাবে "পোস্ট" কল করেন তবে আমরা যখন এটি কল করি তখন এটি "বিকল্প" হবে

সি # ওয়েব পরিষেবাদির জন্য - ওয়েবপী

<System.webServer> ট্যাগের অধীনে আপনার web.config ফাইলে নিম্নলিখিত কোডটি যোগ করুন। এই কাজ করবে

<httpProtocol>
    <customHeaders>
        <add name="Access-Control-Allow-Origin" value="*" />
    </customHeaders>
</httpProtocol>

আপনি অজ্যাক্স কল কোন ভুল করছেন না দয়া করে নিশ্চিত করুন

jQuery এর

$.ajax({
    url: 'http://mysite.microsoft.sample.xyz.com/api/mycall',
    headers: {
        'Content-Type': 'application/x-www-form-urlencoded'
    },
    type: "POST", /* or type:"GET" or type:"PUT" */
    dataType: "json",
    data: {
    },
    success: function (result) {
        console.log(result);    
    },
    error: function () {
        console.log("error");
    }
});

কৌণিক 4 সমস্যাটি পড়ুন: http://www.hubfly.com/blog/solutions/how-to-fix-angular-4-api-call-issues/

দ্রষ্টব্য: আপনি যদি তৃতীয় পক্ষের ওয়েবসাইট থেকে সামগ্রী ডাউনলোড করার জন্য সন্ধান করেন তবে এটি আপনাকে সাহায্য করবে না । আপনি নিম্নলিখিত কোড চেষ্টা করতে পারেন তবে জাভাস্ক্রিপ্ট নয়।

System.Net.WebClient wc = new System.Net.WebClient();
string str = wc.DownloadString("http://mysite.microsoft.sample.xyz.com/api/mycall");

জনপ্রিয় প্রশ্ন - আপনি যদি এটিকে আরও পড়তে দেখে থাকেন তবে অন্য কোনও জিনিস দেখতে সহায়তা করে। আপনার যদি আকামা, লিমলাইট বা অনুরূপ একটি সিডিএন থাকে তবে আপনি সংস্থার URI- এর জন্য আপনার কাছে থাকা ক্যাশ কীটি দেখতে চাইতে পারেন। এটি মূল শিরোনাম মান অন্তর্ভুক্ত না করে আপনি অন্য উত্স থেকে অনুরোধ করার সময় একটি প্রতিক্রিয়া ক্যাশে ফিরে আসছে হতে পারে। আমরা শুধু এই দিন ডিবাগিং ব্যয়। সিডিএন কনফিগারেশনটি শুধুমাত্র কয়েকটি নির্বাচিত ডোমেনগুলির জন্য উত্স মানটি অন্তর্ভুক্ত করার জন্য আপডেট করা হয়েছে এবং একে অন্যের জন্য এটি নিল। এটি কাজ করে এবং আমাদের পরিচিত ডোমেন থেকে ব্রাউজারগুলিকে আমাদের সংস্থান দেখতে দেয়। অবশ্যই অন্য সব উত্তর এখানে পাওয়ার জন্য পূর্বশর্ত কিন্তু যদি আপনার ব্রাউজার থেকে সিডিএন প্রথম হপ হয় তবে এটি পর্যালোচনা করার জন্য কিছু।

আমাদের ক্ষেত্রে আমরা আমাদের পরিষেবাতে কিছু অনুরোধ দেখতে পাচ্ছি কিন্তু সাইটটি পাঠানো প্রায় পরিমাণ ভলিউম নয়। যে সিডিএন আমাদের ইঙ্গিত। আমরা ফিরে যেতে সক্ষম ছিলাম এবং দেখতে আসি যে সরাসরি অনুরোধ থেকে সরাসরি অনুরোধ করা হয়েছে, ব্রাউজার AJAX কল এবং প্রতিক্রিয়া শিরোনামের অংশ নয় অ্যাক্সেস-কন্ট্রোল-অনুমতি-মূলটি অন্তর্ভুক্ত করা হয়নি। দৃশ্যত সিডিএন এই মান ক্যাশে। আকমাই সিডিএন কনফিগারেশনটি মূল অংশ হিসাবে মূল অনুরোধের শিরোনাম মান বিবেচনা করতে দ্বিধাবোধ করে বলে মনে হচ্ছে এটি আমাদের জন্য কাজ করেছে।


যদি আমি এটি সঠিকভাবে বুঝি তবে আপনি আপনার পৃষ্ঠার চেয়ে অন্য কোনও ডোমেইনে XMLHttpRequest করছেন। সুতরাং ব্রাউজারটি এটি অবরুদ্ধ করছে কারণ এটি সাধারণত নিরাপত্তার কারণে একই উত্সের অনুরোধ করে। আপনি ক্রস ডোমেন অনুরোধ করতে চান যখন আপনি কিছু ভিন্ন করতে হবে। কিভাবে এটি অর্জনের জন্য একটি টিউটোরিয়াল CORS ব্যবহার করা হয়

আপনি পোস্টম্যান ব্যবহার করছেন যখন তারা এই নীতি দ্বারা সীমাবদ্ধ হয় না। ক্রস-অরিজিন XMLHttpRequest থেকে উদ্ধৃত:

নিয়মিত ওয়েব পৃষ্ঠাগুলি XMLHttpRequest অবজেক্টটি দূরবর্তী সার্ভারগুলির ডেটা প্রেরণ এবং গ্রহণ করতে ব্যবহার করতে পারে, তবে একই মূল নীতির দ্বারা তারা সীমাবদ্ধ। এক্সটেনশন তাই সীমিত হয় না। যতক্ষণ এটি প্রথম ক্রস-মূল অনুমতিগুলির জন্য অনুরোধ করে ততক্ষণ একটি এক্সটেনশান তার উত্সের বাইরে দূরবর্তী সার্ভারগুলির সাথে কথা বলতে পারে।


https://github.com/Rob--W/cors-anywhere/ সরবরাহ করে (Node.js) কোডটি আপনি নিজের CORS প্রক্সি সেটআপ এবং চালানোর জন্য ব্যবহার করতে পারেন। এটি সক্রিয়ভাবে রক্ষণাবেক্ষণ করে এবং সঠিক Access-Control-* প্রতিক্রিয়া শিরোনামের কেবলমাত্র মৌলিক প্রেরণের বাইরে প্রক্সি আচরণ নিয়ন্ত্রণ করার জন্য অনেক বৈশিষ্ট্য সরবরাহ করে।

developer.mozilla.org/en-US/docs/Web/HTTP/Access_control_CORS এ ব্যাখ্যা করার বিশদ রয়েছে যে ব্রাউজার কীভাবে ক্রস-মূল অনুরোধগুলি পরিচালনা করে যা ক্লায়েন্ট-সাইড ওয়েব অ্যাপ্লিকেশনগুলি জাভাস্ক্রিপ্ট থেকে তৈরি করে এবং কোন শিরোনামগুলি আপনাকে প্রেরণের জন্য কনফিগার করতে হবে সার্ভার অনুরোধ করা হয়, যদি আপনি করতে পারেন।

যদি এমন কোনও সাইট থেকে আপনাকে কোনও অনুরোধ করতে এবং প্রতিক্রিয়া জানানোর প্রয়োজন হয় তবে Access-Control-Allow-Origin প্রতিক্রিয়া শিরোনামটি ফেরত দেয় না, ব্রাউজার সর্বদা আপনার ক্লায়েন্ট দ্বারা সরাসরি ক্রস-মূল অনুরোধগুলি ব্লক করতে যাচ্ছে। কাজ থেকে পাশাপাশি জাভাস্ক্রিপ্ট কোড। এবং তাই যদি সাইটটি আপনি নিয়ন্ত্রণ না করেন এবং আচরণকে কনফিগার করতে পারেন তবে সেই ক্ষেত্রে কাজ করবে এমন একমাত্র জিনিস অনুরোধগুলির প্রক্সি করা হয়-আপনার নিজের প্রক্সির মাধ্যমে আপনি নিজের বা প্রক্সি ব্যবহার করে চালান।

এখানে অন্যান্য মন্তব্য উল্লেখ হিসাবে, আপনার অনুরোধ সঙ্গে একটি খোলা প্রক্সি বিশ্বাস না করার জন্য ভাল কারণ আছে। আপনি যদি জানেন যে আপনি কী করছেন এবং আপনি আপনার প্রয়োজনগুলির জন্য একটি খোলা প্রক্সি কাজ করেন তবে https://cors-anywhere.herokuapp.com/ এটি নির্ভরযোগ্যভাবে উপলব্ধ, সক্রিয়ভাবে রক্ষণাবেক্ষণ এবং এটির একটি উদাহরণ চালায় https://github.com/Rob--W/cors-anywhere/ কোড।

এখানে উল্লিখিত অন্যান্য খোলা প্রক্সিগুলির সাথে (যা কয়েকটি অন্তত আর উপলব্ধ থাকবে বলে মনে হচ্ছে না), এটি যেভাবে কাজ করে তা হল আপনার ক্লায়েন্ট কোডটি সরাসরি একটি অনুরোধ পাঠানোর পরিবর্তে, http://foo.com আপনি এটি https://cors-anywhere.herokuapp.com/http://foo.com পাঠান এবং প্রক্সি ব্রাউজারটি যে প্রতিক্রিয়ার প্রতিক্রিয়াতে প্রয়োজনীয় Access-Control-* শিরোনাম যোগ করে।


সার্ভার থেকে প্রতিক্রিয়ার অনুরোধ করার সময় আমার নিম্নলিখিত কনফিগারেশন ছিল, একই ত্রুটির ফলে।

সার্ভার-পার্শ্ব: SparkJava -> REST-API সরবরাহ করে
ক্লায়েন্ট-পার্শ্ব: ExtJs6 -> ব্রাউজার রেন্ডারিং সরবরাহ করে

সার্ভারের পাশে আমাকে এই প্রতিক্রিয়াটি জুড়তে হয়েছিল:

Spark.get("/someRestCallToSpark", (req, res) -> {
    res.header("Access-Control-Allow-Origin", "*"); //important, otherwise its not working 
    return "some text";
 });

ক্লায়েন্টের পাশে আমাকে এই অনুরোধটি যোগ করতে হয়েছিল:

Ext.Ajax.request({
    url: "http://localhost:4567/someRestCallToSpark",
    useDefaultXhrHeader: false, //important, otherwise its not working
    success: function(response, opts) {console.log("success")},
    failure: function(response, opts) {console.log("failure")}
});

না 'অ্যাক্সেস-কন্ট্রোল-অনুমতি-অরিজিন' শিরোনাম অনুরোধ করা সংস্থানে উপস্থিত। মূলত ' https://sx.xyz.com ' এর অ্যাক্সেসের অনুমতি নেই।

আমি ত্রুটি অনির্ধারিত হিসাবে Ajax প্রতিক্রিয়া ক্রস ডোমেন তথ্য এক্সচেঞ্জ সঙ্গে একই সমস্যা সম্মুখীন ছিল । কিন্তু হেডারের প্রতিক্রিয়া স্থিতি কোড: 200 ঠিক আছে

Failed to load https://www.Domain.in/index.php?route=api/synchronization/checkapikey:
No 'Access-Control-Allow-Origin' header is present on the requested resource.
Origin 'https://sx.xyz.in' is therefore not allowed access.

এটির সমাধান পেতে: আমার ক্ষেত্রে এটি অ্যাক্স্যাকের মাধ্যমে ফাংশন চেকপিকেই () কে অন্য ডোমেনে যেতে বলা হয়েছিল এবং কলটি যেখানে তৈরি করা হয়েছিল তার সাথে প্রতিক্রিয়া পান:

if (($this->request->server['REQUEST_METHOD'] == 'POST') && isset($this->request->server['HTTP_ORIGIN'])) {

        $this->response->addHeader('Access-Control-Allow-Origin: ' . $this->request->server['HTTP_ORIGIN']);
        $this->response->addHeader('Access-Control-Allow-Methods: GET, PUT, POST, DELETE, OPTIONS');
        $this->response->addHeader('Access-Control-Max-Age: 1000');
        $this->response->addHeader('Access-Control-Allow-Credentials: true');
        $this->response->addHeader('Access-Control-Allow-Headers: Content-Type, Authorization, X-Requested-With');

        $headers = getallheaders();
...
}

আপনি ব্রাউজার থেকে এই ত্রুটি বার্তা পেতে হলে:

No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin '…' is therefore not allowed access

যখন আপনি আপনার নিয়ন্ত্রণের বাইরে একটি দূরবর্তী সার্ভারে একটি অজ্যাক্স পোস্ট / GET অনুরোধ করার চেষ্টা করছেন, দয়া করে এই সহজ সমাধানটি ভুলে যান:

<?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);
    }
});

তারপরে, আপনার POST ডেটা মোড়ানো এবং প্যারামিটার হিসাবে দূরবর্তী URL সার্ভারে যুক্ত করার জন্য proxy.php নামক একটি সহজ পিএইচপি ফাইল তৈরি করুন। Expedia Hotel অনুসন্ধান 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));

আপনি ঠিক একই প্রশ্ন করছেন, কিন্তু সার্ভারের পাশে এবং এর পরে, এটি ভাল কাজ করা উচিত।

উত্তর NizarBsb থেকে অনুলিপি এবং pastedNizarBsb


আমার ওয়েবসাইটে (.NET এর উপর ভিত্তি করে) আমি এইটিকে যুক্ত করেছি:

<system.webServer>
 <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="GET, POST, PUT, DELETE, OPTIONS" />  
    </customHeaders>  
  </httpProtocol>         
</system.webServer>

this ভিডিও থেকে বড় ধন্যবাদ ।


শুর্তি এর উত্তরের উপর ভিত্তি করে, আমি প্রয়োজনীয় আর্গুমেন্ট সহ Chrome ব্রাউজারের একটি শর্টকাট তৈরি করেছি:


Rails সার্ভারে রুবি জন্য application_controller.rb, এই যোগ করুন:

after_action :cors_set_access_control_headers

def cors_set_access_control_headers
  headers['Access-Control-Allow-Origin'] = '*'
  headers['Access-Control-Allow-Methods'] = 'POST, GET, OPTIONS'
  headers['Access-Control-Allow-Headers'] = '*'
end

আমি $http.getAngular সঙ্গে এই ত্রুটি পেয়েছিলাম । আমি $http.jsonpপরিবর্তে ব্যবহার করতে হবে।


সম্পূর্ণতা জন্য, Apache cors অনুমতি দেয়:

Header set Access-Control-Allow-Origin "http://www.allowonlyfromthisurl.com"
Header set Access-Control-Allow-Methods "POST, GET, OPTIONS, DELETE, PUT"
Header set Access-Control-Max-Age "1000"
Header set Access-Control-Allow-Headers "x-requested-with, Content-Type, Accept-Encoding, Accept-Language, Cookie, Referer"




flask-restless