ajax get を介してアプリの内部ルートを呼び出しています (クロスサイト スクリプティングなし)
Archive/WeatherForecast?lat=63.8299&lng=20.25484
私のローカルホストでは問題なく動作しますが、https があるライブ環境では、「http 403、禁止されています」というエラーがスローされます。
それが問題に関係している可能性がある場合、そのルートは php リクエストを作成します
$api_url = "http://api.met.no/weatherapi/locationforecastlts/1.1/";
これは明らかに https ではありませんが、クライアントに提供されるのはディスクに保存されたファイルからのデータであるため (上記の http ルートからの情報に基づく)、クライアントはそれについて心配する必要はありません。生成されたファイルを確認しましたが、それらは正確な内容の実際の xml ファイルです。
get リクエストは次のように行われます。
var url = '{{ path('WeatherForecast') }}';
var lat = $('#data_21').val();
var lng = $('#data_22').val();
var full_uri = url + '?lat=' + lat + '&lng=' + lng;
console.log('calling:' + full_uri);
jQuery.ajax({
url: full_uri,
success: function(result) {
$('#weatherdata').html(result);
},
error: function(result) {
$('#weatherdata').html('kunde inte hämta väderdata');
},
asynch: false,
});
さらに、エラーを確認するために chrome コンソールにアクセスすると、ajaxGet を試みたルートが表示され、そのルートをクリックして新しいタブで開くと、突然動作し、 jQuery AjaxGetが「403禁止」をスローしました...
おそらく問題ではありませんが、symfony2 アプリです。