Apa contoh SOAP paling sederhana menggunakan Javascript?
Agar bermanfaat, jawabannya harus:
- Berfungsi (dengan kata lain benar-benar berfungsi)
- Kirim setidaknya satu parameter yang dapat diatur di tempat lain dalam kode
- Memproses setidaknya satu nilai hasil yang dapat dibaca di tempat lain dalam kode
- Bekerja dengan sebagian besar versi browser modern
- Jadilah sejelas dan sesingkat mungkin, tanpa menggunakan perpustakaan eksternal
javascript
soap
Thomas Bratt
sumber
sumber
Jawaban:
Ini adalah Klien SOAP JavaScript paling sederhana yang dapat saya buat.
sumber
xmlhttp.setRequestHeader('SOAPAction', 'http://myurl.com/action');
sesaat sebelumxmlhttp.send(sr)
memperbaikinya.Ada banyak kebiasaan dalam cara browser menangani XMLHttpRequest, kode JS ini akan berfungsi di semua browser:
https://github.com/ilinsky/xmlhttprequest
Kode JS ini mengubah XML menjadi objek JavaScript yang mudah digunakan:
http://www.terracoder.com/index.php/xml-objectifier
Kode JS di atas dapat dimasukkan dalam halaman untuk memenuhi persyaratan perpustakaan eksternal Anda.
Dua opsi lain:
Klien SOAP JavaScript:
http://www.guru4.net/articoli/javascript-soap-client/en/
Hasilkan JavaScript dari WSDL:
https://cwiki.apache.org/confluence/display/CXF20DOC/WSDL+to+Javascript
sumber
Ini tidak dapat dilakukan dengan JavaScript langsung kecuali layanan web berada pada domain yang sama dengan halaman Anda.Sunting: Pada tahun 2008 dan di IE <10 ini tidak dapat dilakukan dengan javascript lurus kecuali layanan berada pada domain yang sama dengan halaman Anda.Jika layanan web ada di domain lain [dan Anda harus mendukung IE <10] maka Anda harus menggunakan halaman proxy di domain Anda sendiri yang akan mengambil hasilnya dan mengembalikannya kepada Anda. Jika Anda tidak memerlukan dukungan IE lama maka Anda perlu menambahkan dukungan CORS ke layanan Anda. Dalam kedua kasus, Anda harus menggunakan sesuatu seperti lib yang disarankan timyates karena Anda tidak ingin harus menguraikan hasilnya sendiri.
Jika layanan web berada di domain Anda sendiri maka jangan gunakan SOAP. Tidak ada alasan bagus untuk melakukannya. Jika layanan web ada di domain Anda sendiri maka modifikasi sehingga dapat mengembalikan JSON dan menyelamatkan diri Anda dari kesulitan berurusan dengan semua kerepotan yang datang dengan SOAP.
Jawaban singkatnya adalah: Jangan membuat permintaan SOAP dari javascript. Gunakan layanan web untuk meminta data dari domain lain, dan jika Anda melakukannya maka parsing hasilnya di sisi server dan kembalikan dalam bentuk js friendly.
sumber
XMLHttpRequest
, mungkin melalui perpustakaan seperti jquery. Klien simpul akan menggunakan sesuatu yang lain. Sebagian besar layanan web menggunakan REST sebagai panduan untuk mendesain api mereka, tetapi ada banyak pola yang bagus. Kuncinya di sini adalah bahwa badan permintaan / respons adalah JSON karena klien javascript (browser / node / di mana saja) memahami JSON secara asli.Anda dapat menggunakan plugin jquery.soap untuk melakukan pekerjaan untuk Anda.
Contoh penggunaan dari situs:
sumber
Thomas:
JSON lebih disukai untuk penggunaan ujung depan karena ini adalah javascript. Karenanya Anda tidak memiliki XML untuk ditangani. SABUN adalah sakit tanpa menggunakan perpustakaan karena ini. Seseorang menyebutkan SOAPClient, yang merupakan perpustakaan yang baik, kami mulai dengan itu untuk proyek kami. Namun itu memiliki beberapa keterbatasan dan kami harus menulis ulang potongan besar itu. Ini telah dirilis sebagai SOAPjs dan mendukung melewatkan objek kompleks ke server, dan menyertakan beberapa contoh kode proksi untuk menggunakan layanan dari domain lain.
sumber
Adakah yang sudah mencoba ini? https://github.com/doedje/jquery.soap
Tampaknya sangat mudah diimplementasikan.
Contoh:
akan menghasilkan
sumber
Dengar adalah JavaScript terbaik dengan tutorial SOAP dengan contoh.
http://www.codeproject.com/Articles/12816/JavaScript-SOAP-Client
sumber
Beberapa contoh hebat (dan klien SOAP JavaScript yang sudah jadi!) Di sini: http://plugins.jquery.com/soap/
Periksa readme, dan berhati-hatilah dengan pembatasan browser asal-sama.
sumber
Mudah mengkonsumsi layanan SOAP Web dengan JavaScript -> Listing B
Ini mungkin tidak memenuhi semua persyaratan Anda tetapi ini merupakan awal untuk benar-benar menjawab pertanyaan Anda. (Saya mengganti XMLHttpRequest () untuk ActiveXObject ("MSXML2.XMLHTTP") ).
sumber
Contoh paling sederhana terdiri dari:
Menulis pesan SOAP XML mirip dengan ini
POSTing pesan ke url layanan web menggunakan XHR
Parsing respons SOAP XML layanan web serupa dengan ini
Menyajikan hasil kepada pengguna.
Tapi itu banyak kesulitan tanpa perpustakaan JavaScript eksternal.
sumber
sumber
Angularjs $ http bungkus berdasarkan XMLHttpRequest . Selama konten tajuk diatur, kode berikut akan dilakukan.
Sebagai contoh:
sumber
Pertanyaannya adalah 'Apa contoh SOAP paling sederhana menggunakan Javascript?'
Jawaban ini adalah contoh di lingkungan Node.js , bukan browser. (Mari kita beri nama script soap-node.js) Dan kita akan menggunakan layanan web SOAP publik dari Eropa PMC sebagai contoh untuk mendapatkan daftar referensi artikel.
Sebelum menjalankan kode, Anda perlu menginstal dua paket:
Sekarang Anda dapat menjalankan kode:
Dan Anda akan melihat hasilnya seperti di bawah ini:
sumber