我打電話我的應用程序的內部路由通過Ajax的GET(無跨站腳本)AJAX GET工作在本地主機上,而不是在現場HTTPS站點
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,
});
而且,如果我去到鉻控制檯來查看錯誤,它顯示了我,我想ajaxGet什麼路線,如果我點擊這個路由在一個新的標籤打開它,它突然工作,並呈現給我的數據,jQuery的AjaxGet投擲「403禁止」...
它可能並不重要,但它是一個symfony2應用程序。
是吧' asynch:false,'或'async:false,' – PSL
並且在末尾沒有逗號 – hendr1x
我不認爲你可以在https頁面上執行http ajax請求。 (爲了瀏覽器安全的原因) –