ক্রস-অরিজিন রিসোর্স শেয়ারিং (সিওআরএস) পোস্টের অনুরোধটি কীভাবে পাবেন


216

আমার লোকাল ল্যানে (মেশিনএ) একটি মেশিন রয়েছে যার দুটি ওয়েব সার্ভার রয়েছে। প্রথমটি এক্সবিএমসিতে অন্তর্নির্মিত একটি (8080 পোর্টে) এবং আমাদের লাইব্রেরিটি প্রদর্শন করে। দ্বিতীয় সার্ভারটি হ'ল চেরিপাই পাইথন স্ক্রিপ্ট (পোর্ট ৮০৮১) যা আমি প্রয়োজনে ফাইল রূপান্তরটি ট্রিগার করতে ব্যবহার করছি। ফাইল রূপান্তরটি এক্সবিএমসি সার্ভার থেকে পরিবেশন করা পৃষ্ঠা থেকে একটি এজেএক্স পোস্ট অনুরোধ দ্বারা ট্রিগার করা হয়েছে।

  • গোটো http: // machineA: 8080 যা লাইব্রেরি প্রদর্শন করে
  • গ্রন্থাগার প্রদর্শিত হয়
  • ব্যবহারকারীরা নিম্নলিখিত রূপে লিখিত 'রূপান্তর' লিঙ্কে ক্লিক করে -

jQuery Ajax অনুরোধ

$.post('http://machineA:8081', {file_url: 'asfd'}, function(d){console.log(d)})
  • ব্রাউজারটি নিম্নলিখিত শিরোনামগুলির সাথে একটি HTTP অপশন অনুরোধ জারি করে;

অনুরোধ শিরোনাম - বিকল্পগুলি

Host: machineA:8081
User-Agent: ... Firefox/4.01
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 115
Connection: keep-alive
Origin: http://machineA:8080
Access-Control-Request-Method: POST
Access-Control-Request-Headers: x-requested-with
  • সার্ভার নিম্নলিখিত সাথে সাড়া দেয়;

প্রতিক্রিয়া শিরোনাম - বিকল্পগুলি (STATUS = 200 ঠিক আছে)

Content-Length: 0
Access-Control-Allow-Headers: *
Access-Control-Max-Age: 1728000
Server: CherryPy/3.2.0
Date: Thu, 21 Apr 2011 22:40:29 GMT
Access-Control-Allow-Origin: *
Access-Control-Allow-Methods: POST, GET, OPTIONS
Content-Type: text/html;charset=ISO-8859-1
  • কথোপকথনটি তখন থামে। ব্রাউজারটি তত্ত্বীয়ভাবে সার্ভারের সঠিক (?) সিওআরএস শিরোনাম (অ্যাক্সেস-কন্ট্রোল-মঞ্জুরি-উত্স: *) দিয়ে সার্ভারের প্রতিক্রিয়া হিসাবে একটি পোষ্ট অনুরোধ জারি করা উচিত

সমস্যা সমাধানের জন্য, আমি http://jquery.com থেকে একই p .পোস্ট কমান্ডও জারি করেছি । এখানেই আমি স্ট্যাম্পড আছি, jquery.com থেকে, পোস্টের অনুরোধটি কাজ করে, একটি বিকল্পের অনুরোধ পোস্টের পরে প্রেরণ করা হয়। এই লেনদেনের শিরোনামগুলি নীচে রয়েছে;

অনুরোধ শিরোনাম - বিকল্পগুলি

Host: machineA:8081
User-Agent: ... Firefox/4.01
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 115
Connection: keep-alive
Origin: http://jquery.com
Access-Control-Request-Method: POST

প্রতিক্রিয়া শিরোনাম - বিকল্পগুলি (STATUS = 200 ঠিক আছে)

Content-Length: 0
Access-Control-Allow-Headers: *
Access-Control-Max-Age: 1728000
Server: CherryPy/3.2.0
Date: Thu, 21 Apr 2011 22:37:59 GMT
Access-Control-Allow-Origin: *
Access-Control-Allow-Methods: POST, GET, OPTIONS
Content-Type: text/html;charset=ISO-8859-1

শিরোনামটির অনুরোধ করুন - পোস্ট করুন

Host: machineA:8081
User-Agent: ... Firefox/4.01
Accept: */*
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 115
Connection: keep-alive
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
Referer: http://jquery.com/
Content-Length: 12
Origin: http://jquery.com
Pragma: no-cache
Cache-Control: no-cache

প্রতিক্রিয়া শিরোনাম - পোস্ট (STATUS = 200 ঠিক আছে)

Content-Length: 32
Access-Control-Allow-Headers: *
Access-Control-Max-Age: 1728000
Server: CherryPy/3.2.0
Date: Thu, 21 Apr 2011 22:37:59 GMT
Access-Control-Allow-Origin: *
Access-Control-Allow-Methods: POST, GET, OPTIONS
Content-Type: application/json

একই অনুরোধটি কেন একটি সাইট থেকে কাজ করবে তা আমি কাজ করতে পারি না তবে অন্যটি নয়। আমি আশা করছি যে আমি কী অনুপস্থিত তা কেউ উল্লেখ করতে সক্ষম হবে। আপনার সাহায্যের জন্য ধন্যবাদ!


যদি উভয় ওয়েব সার্ভার একই মেশিনে থাকে তবে কি সিওআরএস দরকার?
jdigital

8
আমার জ্ঞানের সেরাটি হ'ল এটি বিভিন্ন বন্দরের কারণে একটি কর অনুরোধ। এছাড়াও, বিকল্পগুলির অনুরোধটি ইঙ্গিত দেয় যে ব্রাউজারটি এটি একটি কর্স অনুরোধ হিসাবে বিবেচনা করছে
জেমস

উত্তর:


157

অবশেষে আমি এই লিঙ্কটিতে হোঁচট খেয়েছি " একটি কর্স পোস্টের অনুরোধটি সরল জাভাস্ক্রিপ্ট থেকে কাজ করে, তবে কেন jQuery দিয়ে নয়? " যে নোট করে যে jQuery 1.5.1 যোগ করেছে

 Access-Control-Request-Headers: x-requested-with

সমস্ত CORS অনুরোধের শিরোনাম। jQuery 1.5.2 এটি করেন না। এছাড়াও, একই প্রশ্ন অনুসারে, একটি সার্ভারের প্রতিক্রিয়া শিরোনাম সেট করে

Access-Control-Allow-Headers: *

প্রতিক্রিয়া অবিরত হতে দেয় না। আপনাকে প্রতিক্রিয়া শিরোনামে বিশেষভাবে প্রয়োজনীয় শিরোনাম অন্তর্ভুক্ত করা উচিত তা নিশ্চিত করতে হবে। অর্থাৎ,

Access-Control-Allow-Headers: x-requested-with 

70

অনুরোধ:

 $.ajax({
            url: "http://localhost:8079/students/add/",
            type: "POST",
            crossDomain: true,
            data: JSON.stringify(somejson),
            dataType: "json",
            success: function (response) {
                var resp = JSON.parse(response)
                alert(resp.status);
            },
            error: function (xhr, status) {
                alert("error");
            }
        });

প্রতিক্রিয়া:

response = HttpResponse(json.dumps('{"status" : "success"}'))
response.__setitem__("Content-type", "application/json")
response.__setitem__("Access-Control-Allow-Origin", "*")

return response

3
যদি সার্ভার ক্রস উত্স গ্রহণ না করে তবে ক্রসডোমেন = সত্য সমস্যার সমাধান করতে হবে না। ডেটা টাইপ: "জসনপ" ব্যবহার করা এবং জসনপক্যালব্যাকের মতো কলব্যাক সেট করা: "প্রতিক্রিয়া" এটি করা ভাল ধারণা হবে। আরও দেখুন: api.jquery.com/jquery.ajax
BonifatiusK

14

গুগল দুরত্ব ম্যাট্রিক্স এপিআই ব্যবহার করার সময় আমি আমার নিজের সমস্যার সমাধান করেছি জিকিউরি এজ্যাক্সের সাথে আমার অনুরোধ শিরোনামটি সেট করে। নীচে একবার দেখুন।

var settings = {
          'cache': false,
          'dataType': "jsonp",
          "async": true,
          "crossDomain": true,
          "url": "https://maps.googleapis.com/maps/api/distancematrix/json?units=metric&origins=place_id:"+me.originPlaceId+"&destinations=place_id:"+me.destinationPlaceId+"&region=ng&units=metric&key=mykey",
          "method": "GET",
          "headers": {
              "accept": "application/json",
              "Access-Control-Allow-Origin":"*"
          }
      }

      $.ajax(settings).done(function (response) {
          console.log(response);

      });

আমি সেটিংসে কী যুক্ত করেছি তা নোট করুন
**

"headers": {
          "accept": "application/json",
          "Access-Control-Allow-Origin":"*"
      }

**
আমি আশা করি এটি সাহায্য করবে।


সার্ভার-সাইডে কোনও পরিবর্তন না করেই আমাদের জন্য এটিই একমাত্র সমাধান কাজ করেছে ... থ্যাঙ্কস
অলৌকিক

1
@ টিমস্টা, আমার পরামর্শটি আপনার পক্ষে কাজ করায় খুশি। ওভারফ্লো স্ট্যাকের জন্য কৃতজ্ঞ। দিন শুভ হোক.
মিরাকুল

13

সমাধানটি খুঁজতে আমাকে কিছুটা সময় নিয়েছে।

আপনার সার্ভারের সঠিক প্রতিক্রিয়া এবং অনুরোধটি যদি সমস্যা withCredentials: trueহয় তবে xhrFieldsআপনার অনুরোধটির মধ্যে যোগ করা উচিত :

$.ajax({
    url: url,
    type: method,
    // This is the important part
    xhrFields: {
        withCredentials: true
    },
    // This is the important part
    data: data,
    success: function (response) {
        // handle the response
    },
    error: function (xhr, status) {
        // handle errors
    }
});

দ্রষ্টব্য: jQuery> = 1.5.1 প্রয়োজনীয়


jquery সংস্করণ ঠিক আছে? আপনি সেট করেছেন withCredentials: true? আপনি কি প্রাসঙ্গিক শিরোনাম আছে নিশ্চিত?
ডেকেল

হ্যাঁ, 1withCredential: সত্য , jquery সংস্করণ: 3.2.1`। আসলে এটি পোস্টম্যানের মাধ্যমে কাজ করছে, তবে এটি ক্রোম ব্রাউজারের মধ্য দিয়ে যাচ্ছে না
মক্স শাহ

1
আমি প্রায় নিশ্চিত পোস্টম্যানের সিওআরএস সমস্যা হওয়া উচিত নয় কারণ এটি ব্রাউজার নয় এবং এর আচরণটি ভিন্ন। আপনি কি নিশ্চিত যে আপনার কাছে সঠিক এবং প্রাসঙ্গিক হেডারগুলি সার্ভার থেকে ক্লায়েন্টকে প্রেরণ করছে? আবার - নোট করুন যে এই পরিবর্তনটি যথেষ্ট নয় । আপনাকে সঠিক শিরোনামগুলির সাথে সার্ভারের প্রতিক্রিয়া নিশ্চিত করতে হবে ।
ডেকেল

আপনি কি আমাকে বলতে পারেন সার্ভারে রেসপন্স শিরোনামগুলি কী কী?
মক্স শাহ

@ মক্সশাহ এটি সম্পূর্ণ আলাদা প্রশ্ন এবং সেখানে প্রচুর সংস্থান রয়েছে :)
ডেকেল

9

বেশ কয়েক সপ্তাহ ধরে আমি এই সমস্যাটির সাথে লড়াই করেছি।

এটি করার সবচেয়ে সহজ, সবচেয়ে কমপ্লায়েন্ট এবং নন হ্যাকি উপায়টি সম্ভবত একটি সরবরাহকারী জাভাস্ক্রিপ্ট এপিআই ব্যবহার করা যা ব্রাউজার ভিত্তিক কলগুলি করে না এবং ক্রস অরিজিনের অনুরোধগুলি পরিচালনা করতে পারে।

যেমন ফেসবুক জাভাস্ক্রিপ্ট এপিআই এবং গুগল জেএস এপিআই।

যদি আপনার এপিআই সরবরাহকারী বর্তমান না থাকে এবং এর প্রতিক্রিয়াতে ক্রস অরিজিন রিসোর্স অরিজিন '*' শিরোনামকে সমর্থন না করে এবং জেএস এপি নেই (হ্যাঁ আমি আপনার বিষয়ে ইয়াহু বলছি), আপনি তিনটি বিকল্পের একটিতে আঘাত হানেন-

  1. আপনার অনুরোধগুলিতে jsonp ব্যবহার করা যা আপনার URL এ কলব্যাক ফাংশন যুক্ত করে যেখানে আপনি নিজের প্রতিক্রিয়া পরিচালনা করতে পারবেন। কেভিয়েট এটি অনুরোধের ইউআরএল পরিবর্তন করবে যাতে আপনার এপিআই সার্ভারটি ইউআরএল শেষে? কলব্যাক = পরিচালনা করতে হবে।

  2. অনুরোধটি আপনার এপিআই সার্ভারে প্রেরণ করুন যা আপনার দ্বারা নিয়ন্ত্রক এবং তা ক্লায়েন্টের মতো একই ডোমেনে রয়েছে বা ক্রস অরিজিন রিসোর্স ভাগ করে নেওয়া সক্ষম করেছে যেখানে আপনি তৃতীয় পক্ষের API সার্ভারে অনুরোধটি প্রক্সি করতে পারবেন।

  3. আপনি OAuth অনুরোধ করছেন এমন ক্ষেত্রে সম্ভবত সবচেয়ে দরকারী এবং ব্যবহারকারীর ইন্টারঅ্যাকশন হাহা দরকার হাহা! window.open('url',"newwindowname",'_blank', 'toolbar=0,location=0,menubar=0')


4

লারাভেলের সাথে একত্রে এটি ব্যবহার করা আমার সমস্যার সমাধান করে। কেবল আপনার jquery অনুরোধে এই শিরোনামটি যুক্ত করুন Access-Control-Request-Headers: x-requested-withএবং নিশ্চিত করুন যে আপনার সার্ভারের পাশের প্রতিক্রিয়াতে এই শিরোনামটি সেট আছে Access-Control-Allow-Headers: *


6
ম্যানুয়ালি অনুরোধে সিওআরএস শিরোনাম যুক্ত করার কোনও কারণ নেই। ব্রাউজারটি সর্বদা আপনার জন্য অনুরোধে প্রোপ সিওআরএস শিরোনাম যুক্ত করবে।
রে নিকোলাস

1
প্রকৃত চ্যালেঞ্জটি হ'ল সার্ভারকে সঠিক Access-Control-Allow-Headersএবং জিকিউ সরবরাহকারী সঠিক Access-Control-Request-Headers(প্লাস আপনি কোডের মাধ্যমে সংযুক্ত যে কোনও) দিয়ে জবাব দেওয়ার জন্য পাচ্ছেন যা কোনটি ওয়াইল্ডকার্ড হতে পারে না। প্রাক ফ্লাইটটি ফুটিয়ে তুলতে কেবল একটি "খারাপ" শিরোনাম লাগে, যেমন If-None-Matchসার্ভারের তালিকাভুক্ত না থাকলে শর্তসাপেক্ষে জিইটি ব্যবহার করুন ।
-এলএলসি

1

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

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

এক্সএমএলএইচটিএইচপিআরকোয়েস্টঅবজেক্ট অবজেক্টে থাকা ডেটা পেতে সহজেই নিম্নলিখিতটি পরিবর্তন করা যেতে পারে:

function checkCorsSource(source) {
  var xmlHttpRequestObject;
  if (window.XMLHttpRequest) {
    xmlHttpRequestObject = new XMLHttpRequest();
    if (xmlHttpRequestObject != null) {
      var sUrl = "";
      if (source == "google") {
        var sUrl = "https://www.google.com";
      } else {
        var sUrl = "https://httpbin.org/get";
      }
      document.getElementById("txt1").innerHTML = "Request Sent...";
      xmlHttpRequestObject.open("GET", sUrl, true);
      xmlHttpRequestObject.onreadystatechange = function() {
        if (xmlHttpRequestObject.readyState == 4 && xmlHttpRequestObject.status == 200) {
          document.getElementById("txt1").innerHTML = "200 Response received!";
        } else {
          document.getElementById("txt1").innerHTML = "200 Response failed!";
        }
      }
      xmlHttpRequestObject.send();
    } else {
      window.alert("Error creating XmlHttpRequest object. Client is not CORS enabled");
    }
  }
}
<html>
<head>
  <title>Check if page is cors</title>
</head>
<body>
  <p>A CORS-enabled source has one of the following HTTP headers:</p>
  <ul>
    <li>Access-Control-Allow-Headers: *</li>
    <li>Access-Control-Allow-Headers: x-requested-with</li>
  </ul>
  <p>Click a button to see if the page allows CORS</p>
  <form name="form1" action="" method="get">
    <input type="button" name="btn1" value="Check Google Page" onClick="checkCorsSource('google')">
    <input type="button" name="btn1" value="Check Cors Page" onClick="checkCorsSource('cors')">
  </form>
  <p id="txt1" />
</body>
</html>


1

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

        var xhr = new XMLHttpRequest()
        xhr.open('POST', 'https://mywebsite.com', true)
        xhr.withCredentials = true
        xhr.onreadystatechange = function() {
          if (xhr.readyState === 2) {// do something}
        }
        xhr.setRequestHeader('Content-Type', 'application/json')
        xhr.send(json)

আশা করি এটি একই সমস্যাগুলির সাথে অন্য কাউকে সহায়তা করে।


1

এটি আমার পক্ষে কী কাজ করেছে তার একটি সংক্ষিপ্তসার:

একটি নতুন ফাংশন সংজ্ঞায়িত করুন ( $.ajaxসরলীকরণে মোড়ানো ):

jQuery.postCORS = function(url, data, func) {
  if(func == undefined) func = function(){};
  return $.ajax({
    type: 'POST', 
    url: url, 
    data: data, 
    dataType: 'json', 
    contentType: 'application/x-www-form-urlencoded', 
    xhrFields: { withCredentials: true }, 
    success: function(res) { func(res) }, 
    error: function() { 
            func({}) 
    }
  });
}

ব্যবহার:

$.postCORS("https://example.com/service.json",{ x : 1 },function(obj){
      if(obj.ok) {
           ...
      }
});

এছাড়াও সাথে কাজ করে .done, .fail, ইত্যাদি:

$.postCORS("https://example.com/service.json",{ x : 1 }).done(function(obj){
      if(obj.ok) {
           ...
      }
}).fail(function(){
    alert("Error!");
});

সার্ভার সাইড (এই ক্ষেত্রে যেখানে উদাহরণ.কম হোস্ট করা আছে), এই শিরোনামগুলি সেট করুন (পিএইচপিতে কিছু নমুনা কোড যুক্ত করেছেন):

header('Access-Control-Allow-Origin: https://not-example.com');
header('Access-Control-Allow-Credentials: true');
header('Access-Control-Max-Age: 604800');
header("Content-type: application/json");
$array = array("ok" => $_POST["x"]);
echo json_encode($array);

এটাই আমি জেএস থেকে সত্যিকারের পোষ্ট ক্রস-ডোমেন জানি way

জেএসএনপি পোষ্টকে জিইটি-তে রূপান্তর করে যা সার্ভার লগগুলিতে সংবেদনশীল তথ্য প্রদর্শন করতে পারে।


0

যদি কিছু কারণে শিরোনাম যুক্ত করার চেষ্টা করার সময় বা নিয়ন্ত্রণ নীতি নির্ধারণের জন্য আপনি এখনও কোথাও পাচ্ছেন না তবে আপনি অ্যাপাচি প্রক্সিপাস ব্যবহার বিবেচনা করতে পারেন…

উদাহরণস্বরূপ, <VirtualHost>SSL ব্যবহার করে এমন একটিতে নিম্নলিখিত দুটি নির্দেশকে যুক্ত করুন:

SSLProxyEngine On
ProxyPass /oauth https://remote.tld/oauth

নিম্নলিখিত অ্যাপাচি মডিউলগুলি লোড হয়েছে কিনা তা নিশ্চিত করুন (এ 2 এমড ব্যবহার করে এগুলি লোড করুন):

  • প্রক্সি
  • proxy_connect
  • proxy_http

স্পষ্টতই আপনাকে অ্যাপাচি প্রক্সি ব্যবহার করার জন্য আপনার AJAX অনুরোধ url পরিবর্তন করতে হবে ...


-3

পার্টিতে এটি কিছুটা দেরি হলেও আমি কয়েক দিন ধরে এই নিয়ে লড়াই করে যাচ্ছি। এটি সম্ভব এবং আমি এখানে যে উত্তর পেয়েছি তার কোনওটিই কাজ করে নি। এটি ছদ্মবেশী সহজ। এখানে .ajax কল:

    <!DOCTYPE HTML>
    <html>
    <head>
    <body>
     <title>Javascript Test</title>
     <script src="http://code.jquery.com/jquery-latest.min.js"></script>
     <script type="text/javascript">
     $(document).domain = 'XXX.com';
     $(document).ready(function () {
     $.ajax({
        xhrFields: {cors: false},
        type: "GET",
        url: "http://XXXX.com/test.php?email='steve@XXX.com'",
        success: function (data) {
           alert(data);
        },
        error: function (x, y, z) {
           alert(x.responseText + " :EEE: " + x.status);
        }
    });
    });
    </script> 
    </body>
    </html>

সার্ভারের দিকে পিএইচপি এখানে রয়েছে:

    <html>
    <head>
     <title>PHP Test</title>
     </head>
    <body>
      <?php
      header('Origin: xxx.com');
      header('Access-Control-Allow-Origin:*');
      $servername = "sqlxxx";
      $username = "xxxx";
      $password = "sss";
      $conn = new mysqli($servername, $username, $password);
      if ($conn->connect_error) {
        die( "Connection failed: " . $conn->connect_error);
      }
      $sql = "SELECT email, status, userdata  FROM msi.usersLive";
      $result = $conn->query($sql);
      if ($result->num_rows > 0) {
      while($row = $result->fetch_assoc()) {
        echo $row["email"] . ":" . $row["status"] . ":" . $row["userdata"] .  "<br>";
      }
    } else {
      echo "{ }";
    }
    $conn->close();
    ?>
    </body>


1
এটির জন্য মূল্যবান, মূল শিরোনাম একটি অনুরোধ শিরোনাম, প্রতিক্রিয়া শিরোনাম নয়। আপনার পিএইচপি স্ক্রিপ্টটি সেট করা উচিত নয়।
নুডলস

Hmmph। এটি আমার প্রত্যাশাগুলি পেয়ে যায় এবং তারপরে সেগুলিকে ছিন্ন করে দেয় যখন আমি দেখি যে আপনি আপনার কোডটিতে একটি এজেএক্স "জিইটি" তৈরি করছেন, যখন ওপি বেশ স্পষ্টভাবে বলেছিল যে তিনি "জিইটি" ব্যবহার করে অ্যাভিড করার চেষ্টা করছেন এবং "পোস্ট" ব্যবহার করতে চেয়েছিলেন।
স্টিভ সউডার

CORS শিরোনামগুলি ক্রিয়াটি জড়িত নির্বিশেষে একই কাজ করে। আমরা $.ajax()সঠিকভাবে কনফিগার করা সার্ভারের বিপরীতে সমস্ত ক্রিয়াগুলি চালিত করতে সক্ষম হয়েছি । সবচেয়ে শক্ত অংশটি Access-Control-Request-Headersসঠিক হয়ে উঠছে , তবে এটি খুব বেশি কঠিনও নয়। পূর্ববর্তী পোস্টার দ্বারা উল্লিখিত হিসাবে, এটি অবশ্যই একটি ওয়াইল্ডকার্ড নয় বরং শিরোনামের শ্বেত তালিকা হতে হবে।
-এলএলসি
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.