Bir Sharepoint 2013 sitem var. Dış bir API'ye ajax çağrısı yapan ana sayfaya bir web bölümü ekledim ve bir görüntü ve bağlantı gösteren JSON verilerini döndürdüm. Siteyi Chrome'da ziyaret ettiğinizde, mükemmel çalışır, ancak Internet Explorer'da (11) işe yaramıyor. Tuhaf kısmı, JS'yi çalıştırdığını biliyorum çünkü ikinci satırdan "Geçerli Haberler Yok" p etiketini gösteriyor. Bu benim kodudur: Şirketimin anahtara sahip olduğundansharepoint ajax çağrı internet explorer'da gösterilmiyor
<h1 style="text-align: center">PQA In The News</h1>
<div id="myNewsFeed"><p>No Current News</p></div>
<script src="http://code.jquery.com/jquery-1.11.3.min.js"></script><script src="http://code.jquery.com/jquery-migrate-1.2.1.min.js"></script><script type="text/javascript">
$(document).ready(function() {
document.getElementById("myNewsFeed").innerHTML = "<p>No Current News</p>";
var d = new Date();
var n = d.getTime();
var mo = 86400000 * 30;
n = n - mo;
var queryString = "https://webhose.io/search?token=xxxx&format=json&q=Company%20Name&ts=" + n;
loadJSON(queryString);
function loadJSON(newsURI){
var data_file = newsURI;
var http_request = new XMLHttpRequest();
try{
// Opera 8.0+, Firefox, Chrome, Safari
http_request = new XMLHttpRequest();
}catch (e){
// Internet Explorer Browsers
try{
http_request = new ActiveXObject("Msxml2.XMLHTTP");
}catch (e) {
try{
http_request = new ActiveXObject("Microsoft.XMLHTTP");
}catch (e){
// Something went wrong
alert("Your browser broke!");
return false;
}
}
}
http_request.onreadystatechange = function(){
if (http_request.readyState == 4 ){
var jsonObj = JSON.parse(http_request.responseText);
DisplayData(jsonObj);
}
}
http_request.open("GET", data_file, true);
http_request.send();
}
function DisplayData(data) {
var htmlSource = "<ul>";
for(var i=0; i < data.posts.length; i++) {
htmlSource += "<li><a href=\"" + data.posts[i].url + "\"><img src=\"" + data.posts[i].thread.main_image + "\" height=\"150px\" width=\"150px\">" + data.posts[i].title + "</a></li>";
}
htmlSource += "</ul>"
document.getElementById("myNewsFeed").innerHTML = htmlSource;
}
});</script>
Ben, Sorgu Dize değişti, ama çalıştığını size temin ederim. Chrome'da, bu her şeyi iyi gösterir, ancak IE'de "Geçerli Haberler Yok" mesajını gösterir.
Yanlış bir şey mi yaptım veya Internet Explorer'ın Ajax'a karşı bir sorunu var mı?
ajax istek yönetimini kendiniz uygulamak yerine Jquery'e atayabilirsiniz, bkz. Https://api.jquery.com/jquery.get/ – Kalamarico