cari

Rumah  >  Soal Jawab  >  teks badan

javascript - Pengepala CORS tiada 'Access-Control-Allow-Origin' bagaimana untuk menyelesaikannya?

<html>
    <head>
        <meta http-equiv="access-control-allow-origin" content="https://openapi.lechange.cn">
        <script type="text/javascript" src="js/jquery-1.11.3.min.js"></script>
        <script>
            $.post('https://openapi.lechange.cn/openapi/accessToken',{"system":{"ver":"1.0","sign":"5326bdd79317a8cd215b649e75e042b6","appid":"lace1fdddaa5de4393","time":"1491895621","nonce":"49735441495760803893403522385895","appSecret":"6d5c2c727dbb4ba78fac5a0e9ece82"},"params":{"phone":"17691260000"},"id":"80"},function(data){console.log(data);},'json');
        </script>
    </head>
    <body>
        <a></a>
    </body>
</html>

Apabila berjalan pada Firefox, mesej ralat berikut muncul. Permintaan silang asal disekat: Dasar asal yang sama melarang membaca sumber jauh yang terdapat di https://openapi.lechange.cn/o... (Punca: pengepala CORS 'Access-Control-Allow-Origin' tiada).
Penyelesaian yang ditemui dalam carian dalam talian adalah dengan menambah pengepala pada halaman yang diminta. Ini tidak boleh dikendalikan, dan kaedah lain juga tidak dapat menyelesaikannya. Bagaimana untuk menyelesaikannya?

黄舟黄舟2752 hari yang lalu2220

membalas semua(6)saya akan balas

  • 天蓬老师

    天蓬老师2017-05-16 13:18:09

    CORS secara amnya tidak perlu dikonfigurasikan dalam penyemak imbas Penyemak imbas mendapati bahawa permintaan AJAX silang asal ini adalah permintaan yang mudah, dan secara automatik menambah medan Asal pada maklumat pengepala digunakan untuk menunjukkan sumber (protokol ) permintaan ini berasal dari + nama domain + port).
    Pelayan memutuskan sama ada untuk bersetuju menerima permintaan berdasarkan nilai ini, yang bermaksud bahawa pelayan akan mempunyai senarai putih yang menunjukkan sumber mana yang dibenarkan dan Access-Control-Allow-Origin disertakan dalam pengepala respons senarai putih.
    Pelayar mendapati bahawa maklumat pengepala respons ini tidak mengandungi medan Access-Control-Allow-Origin, jadi ia tahu bahawa sesuatu telah berlaku dan menimbulkan ralat, iaitu gesaan yang anda temui ialah hasil pemulangan dipintas oleh penyemak imbas, dan bukan permintaan itu tidak boleh dihantar.

    Jadi apa yang anda perlukan ialah mengkonfigurasi senarai putih ini pada pelayan, bukan menukar halaman.

    Untuk prinsip CORS, anda boleh membaca artikel ini
    Untuk cara mengkonfigurasi tomcat, anda boleh membaca dokumen ini

    balas
    0
  • 仅有的幸福

    仅有的幸福2017-05-16 13:18:09

    Bolehkah anda menggunakan jsonp merentas domain?

    $.ajax({
        url: 'https://openapi.lechange.cn/openapi/accessToken',
        type: 'post',
        dataType:'jsonp',
        data: '{"system":{"ver":"1.0","sign":"5326bdd79317a8cd215b649e75e042b6","appid":"lace1fdddaa5de4393","time":"1491895621","nonce":"49735441495760803893403522385895","appSecret":"6d5c2c727dbb4ba78fac5a0e9ece82"},"params":{"phone":"17691260000"},"id":"80"}',
        success:function(data){
           console.log(data);
         },
    })

    balas
    0
  • 高洛峰

    高洛峰2017-05-16 13:18:09

    cors tidak memerlukan konfigurasi bahagian hadapan, biarkan jurutera bahagian belakang anda mengkonfigurasinya pada pelayan

    balas
    0
  • 高洛峰

    高洛峰2017-05-16 13:18:09

    Nginx tambah sokongan pengepala

    balas
    0
  • ringa_lee

    ringa_lee2017-05-16 13:18:09

    Gunakan nod atau ular sawa untuk menulis geganti perangkak atau menambah proksi

    balas
    0
  • 淡淡烟草味

    淡淡烟草味2017-05-16 13:18:09

    Tampal kod berikut di bahagian atas fail kemasukan bahagian pelayan

    Selepas masuk dalam talian, sebaiknya tukar * dalam Access-Control-Allow-Origin: * kepada nama domain tertentu yang membenarkan akses

    header('Access-Control-Allow-Origin:*');
    header('Access-Control-Allow-Methods:HEAD,GET,POST,OPTIONS,PATCH,PUT,DELETE');
    header('Access-Control-Allow-Headers:Origin,X-Requested-With,Authorization,Content-Type,Accept,Z-Key');

    balas
    0
  • Batalbalas