de-vraag
  • Pertanyaan
  • Tag
  • Pengguna
Notifikasi
Imbalan
Registrasi
Setelah Anda mendaftar, Anda akan diberitahu tentang balasan dan komentar untuk pertanyaan Anda.
Gabung
Jika Anda sudah memiliki akun, masuk untuk memeriksa pemberitahuan baru.
Akan ada hadiah untuk pertanyaan, jawaban, dan komentar tambahan.
Lebih
Sumber
Sunting
Ashish Rai
Ashish Rai
Question

Jquery AJAX: Tidak ada 'Access-Control-Allow-Origin' header ada pada sumber daya yang diminta

Saya mencoba untuk mengirim data ke API dari localhost: 4502 port saya. Ketika saya mencoba memposting data ke API ini menggunakan POSTMAN, data ditambahkan di backend dengan memberikan kunci Otorisasi Dasar. Hal yang sama saya coba terapkan di sini dalam panggilan Ajax Jquery, tetapi mendapatkan kesalahan CORS. Pertama kali di jquery saya mencoba memposting data, tolong bantu di sini, apa yang bisa saya tambahkan. Saya telah mendapatkan kunci API untuk Otorisasi Dasar sebagai Nama Pengguna dan Kata Sandi dapat dikosongkan.

  <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>

  <script>
               $(document).ready(function(){
               $("#Save").click(function(){

                  var person = new Object();
                  person.Name = $('#Name').val();
                  person.EmailAddress = $('#EmailAddress').val();
                  person.CustomFields = [0];
                  person.CustomFields[0].Key = "[Country]";
                  person.CustomFields[0].Value = $('#Country').val();;

               $.ajax({
                 url: 'https://api.createsend.com/api/v3.1/subscribers/7c7a6087b0e450ad72b38be83098e271.json',
                 type: 'POST',
                 dataType: 'json',
                 data:person,
                 success: function(data,textStatus,xhr){

                     console.log(data);
                 },
                 error: function(xhr,textStatus,errorThrown){
                     console.log('Error Something');
                 },
                 beforeSend: function(xhr) {

                    xhr.setRequestHeader("Authorization", "Basic OTdlMjVmNWJiMTdjNzI2MzVjOGU3NjlhOTI3ZTA3M2Q5MWZmMTA3ZDM2YTZkOWE5Og=="); 
                 }
             });
         });
     });
  </script>
18 2017-11-28T03:01:06+00:00 3
 usr2564301
usr2564301
Pertanyaan edit 7 Maret 2018 в 10:05
Pemrograman
jquery
ajax
cors
aem
Pertanyaan ini memiliki :value jawaban dalam bahasa Inggris, untuk membacanya masuk ke akun Anda.
 Hunter
Hunter
10 Maret 2018 в 9:32
2018-03-10T21:32:22+00:00
Lebih
Sumber
Sunting
#34926713

Saya telah menambahkan dataType: 'jsonp' dan berhasil!

$.ajax({
   type: 'POST',
   crossDomain: true,
   dataType: 'jsonp',
   url: '',
   success: function(jsondata){

   }
})
 Hunter
Hunter
Jawaban edit 5 Juni 2019 в 10:12
15
0
 apelidoko
apelidoko
28 November 2017 в 6:48
2017-11-28T06:48:19+00:00
Lebih
Sumber
Sunting
#34926712

Ini adalah masalah CORS, api Anda tidak dapat diakses langsung dari remote atau asal yang berbeda, Untuk mengizinkan alamat ip lain atau asal lain mengakses api Anda, Anda harus menambahkan ' Access-Control-Allow-Origin ' pada api ' s header, Anda dapat mengatur nilainya ke ' * ' jika Anda ingin dapat diakses oleh semua orang, atau Anda dapat mengatur domain atau ips tertentu seperti ' http://siteA.com' atau ' http://192. alamat ip ';

Sertakan ini pada header api's Anda, mungkin bervariasi tergantung pada bagaimana Anda menampilkan data json,

jika Anda menggunakan ajax, untuk mengambil dan menampilkan data, header Anda akan terlihat seperti ini,

$.ajax({
   url: '',
   headers: {  'Access-Control-Allow-Origin': 'htt://site allowed to access' },
   data: data,
   type: 'dataType',
   /* etc */
   success: function(jsondata){

   }
})
 ArFree
ArFree
Jawaban edit 8 Desember 2018 в 10:41
3
0
 Odin
Odin
19 Oktober 2018 в 3:16
2018-10-19T15:16:10+00:00
Lebih
Sumber
Sunting
#34926714

Jika Anda menggunakan NodeJs untuk sisi server Anda, cukup tambahkan ini ke rute Anda dan Anda akan baik-baik saja

 res.header("Access-Control-Allow-Origin", "*");
 res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");

Rute Anda kemudian akan terlihat seperti ini

router.post('/odin', function(req, res, next) {
  res.header("Access-Control-Allow-Origin", "*");
  res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");

return res.json({Name: req.body.name, Phone: req.body.phone});

});

Sisi klien untuk panggilan Ajax

 var sendingData = {
   name: "Odinfono Emmanuel",
   phone: "1234567890"
}

<script>
  $(document).ready(function(){

    $.ajax({
        url: 'http://127.0.0.1:3000/odin',            
        method: 'POST',
        type: 'json',
        data: sendingData,
        success: function (response) {
            console.log(response);
        },
        error: function (error) {
            console.log(error);
        }
        });
    });
</script>

Anda seharusnya memiliki sesuatu seperti ini di konsol browser Anda sebagai respons

{ name: "Odinfono Emmanuel", phone: "1234567890"}

Nikmati coding....

0
0
Related communities 1
jQuery Indonesia
jQuery Indonesia
343 pengguna
Learning jQuery & Solve Problem
Buka telegram
Tambahkan pertanyaan
Kategori
Semua
Teknologi
Budaya / Rekreasi
Kehidupan / Seni
Ilmu Pengetahuan
Profesional
Bisnis
Pengguna
Semua
Baru
Populer
1
Галина Утяшова
Terdaftar 21 jam yang lalu
2
Asilbek Qadamboyev
Terdaftar 4 hari yang lalu
3
Akshit Mehta
Terdaftar 6 hari yang lalu
4
me you
Terdaftar 1 minggu yang lalu
5
Никита иванов
Terdaftar 1 minggu yang lalu
ID
JA
KO
RU
TR
© de-vraag 2022
Sumber
stackoverflow.com
di bawah lisensi cc by-sa 3.0 dengan atribusi