Cara menggunakan API Ambil untuk memuat naik data rentetan sebagai fail JSON ke titik akhir data borang yang anda mahu tunjuk ke fail setempat
P粉156415696
P粉156415696 2023-08-15 23:09:47
0
1
506
<p>Saya mahu mengemas kini fail Json yang dihoskan menggunakan API pada CDN pihak ketiga. Dalam dokumentasi mereka, mereka memberikan contoh menggunakan cURL untuk mencapai ini. Permintaan cURL yang betul hendaklah seperti ini: </p> <pre class="brush:php;toolbar:false;">curl -X LETAK 'https://endpoint.url.here' -H 'x-auth-token: <token>' -F 'file=@"path/to/your/file"'</pre> <p>Sekarang saya sedang membina halaman React di mana anda memasukkan teks Json ke dalam medan teks dan sebaik sahaja butang ditekan saya mahu mensimulasikan mempunyai laluan ke fail json supaya ia boleh dimasukkan ke dalam permintaan ini. </p> <p>Saya pada asasnya mempunyai dua soalan:</p> <ol> <li><p>Saya dihadkan daripada menggunakan API Ambil, bagaimanakah saya boleh membina permintaan Ambil untuk mencerminkan permintaan cURL contoh dengan betul? </p> </li> <li><p>Bagaimanakah cara saya menukar rentetan dalam medan teks kepada laluan fail (sebaik-baiknya berakhir dengan nama fail) supaya titik akhir menerimanya? </p> </li> </ol> <p>Saya cuba menukar data fail kepada Blob dan menggunakan URL objek sebagai laluan seperti ini: </p> <pre class="brush:php;toolbar:false;">const file = new Blob([jsonText], {type: 'text/plain'}); var blobURL = URL.createObjectURL(file);</pre> <p>Saya juga cuba menggunakan FormData untuk menyediakan permintaan saya: </p> <pre class="brush:php;toolbar:false;">let formData = new FormData(); formData.append('fail', blobURL); biarkan tajuk = { 'x-auth-token': '<token>', 'Jenis-Kandungan': 'berbilang bahagian/data-bentuk' } biarkan muatan = { kaedah: 'LETAK', tajuk: tajuk, badan: formData } fetch('https://endpoint.url.here', muatan) ...</pre> <p>Apabila saya cuba melakukan ini, bahagian belakang hanya membalas dengan beberapa ralat seperti "Fail tidak disediakan" dan saya mengesyaki permintaan saya tidak memenuhi keperluan. Adakah terdapat cara yang lebih baik untuk mencapai ini? Adakah anda mempunyai sebarang cadangan yang boleh saya cuba untuk memadankan permintaan sampel mereka dengan lebih baik? </p>
P粉156415696
P粉156415696

membalas semua(1)
P粉729198207

Ya, saya berjaya menyelesaikan masalah saya. Pengubahsuaian kecil ini adalah kunci:

const jsonBlob = new Blob(['<jsonText>'], {type: 'application/json'});

let formData = new FormData();
formData.append('file', jsonBlob, 'filename.json');

const headers = new Headers();
headers.append('x-auth-token', '<token>');

let payload = {
    method: 'PUT',
    headers: headers,
    body: formData
}

fetch('https://endpoint.url.here', payload) ...

Semuanya berjalan hebat sekarang!

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!