我正在通过 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 文件。
这是获取请求的完成方式:
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 应用程序。