#前提・実現したいこと
行政機関が公表しているAPI(XMLデータ)を利用して、特定のデータを取得・表示するwebアプリを開発しています。APIの公開は2017年6月であり、比較的新しいものです(2018年3月に仕様更新)。
取得・表示する機能はJavascript(ajax)で記述しており、アプリ画面上のボタンをクリックすると当該機能が発動するようになっています。
下記質問でいただいたアドバイスを踏まえ、phpで中継プログラムを作成してJavaScriptとAPIとの間に噛ませています。
(HPKP(HTTP公開鍵ピンニング)を採用したサイトにAPI接続する方法)
構成としては、以下を想定しています(コードは関連箇所の抜粋です)。
①ユーザーが入力したデータを変数hogeとして中継プログラム(php)に渡す
js
1var hoge = xxxxxxxxxx; 2$.ajax({ 3 type: 'POST', 4 url: '/xxxxxxxxxx/connector.php', 5 data: hoge, 6 }).done(function(data){ 7 alert("送信完了!\nレスポンスデータ:" + data); 8 });
②中継プログラムから、変数hogeを代入したAPIアドレスにアクセスする
php
1<?php 2 header("Content-type: text/xml"); 3 $hoge = $_POST['hoge']; 4 $url = "http://xxxxxxxxxx/api/xxxx/'.$hoge.'"; 5 readfile($url); 6?>
③APIから取得したXMLデータをhtmlに表示する
js
1$(document).ready(function(){ 2 $.ajax({ 3 url:'/xxxxxxxxxx/connector.php', 4 type:'GET', 5 dataType:'xml', 6 cache:false, 7 timeout:100000, 8 error:function(XMLHttpRequest, textStatus, errorThrown) { 9 console.log("ロード失敗"); 10 console.log("XMLHttpRequest : " + XMLHttpRequest.status); 11 console.log("textStatus : " + textStatus); 12 console.log("errorThrown : " + errorThrown.message); 13 }, 14 success:function(xml){ 15 console.log(xml); 16 var data = $(xml).find("xxxxxxxxxx"); 17 $("#result").append(data); 18 } 19 }); 20});
#発生している問題・エラーメッセージ
上記プログラムを実行すると、API自体にはアクセスできているようなのですが、phpの「$url = "http://xxxxxxxxxx/api/xxxx/'.$hoge.'";」が正しいURLになっていないようで、想定したデータが表示されません。
おそらく、Ajaxで取得したデータ(hoge)を「$url = "http://xxxxxxxxxx/api/xxxx/'.$hoge.'";」に送信・代入するプロセスに間違いがあるのだと思われますが、解決策がわかりません。
解決方法がお分かりになる方がいらっしゃいましたら、ご回答いただけると大変助かります。。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/01/09 02:45
2019/01/09 02:52
2019/01/10 16:49