gpt4 book ai didi

javascript - sharepoint ajax 调用未显示在 Internet Explorer 中

转载 作者:行者123 更新时间:2023-12-03 07:13:15 24 4
gpt4 key购买 nike

我设置了一个 Sharepoint 2013 网站。我向主页添加了一个 Web 部件,该部件对外部 API 进行 ajax 调用,并返回 JSON 数据,显示图像和链接。当您在 Chrome 中访问该网站时,它可以完美运行,但是在 Internet Explorer (11) 中,它无法运行。奇怪的是我知道它正在运行 JS,因为它在第二行显示“No Current News”p 标签。这是我的代码:

<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>

我更改了查询字符串,因为它有我公司的 key ,但我可以向您保证它有效。在 Chrome 上,这显示一切正常,但在 IE 中,它只显示“没有当前新闻”。

我做错什么了吗,还是 Internet Explorer 对 Ajax 有什么限制?

最佳答案

正如 Kalamarico 所建议的,最好的方法是使用 jquery ajax 调用,并添加失败处理程序来检查确切的错误。在上面的代码中,您的 javascript 调用正在运行,但它可能不会进入就绪状态 4,因此不会设置该值。您可以检查其他状态吗,并且也不应该是其他状态下的readystatechange事件内的http请求调用,否则在达到就绪状态4后它也会再次触发。

关于javascript - sharepoint ajax 调用未显示在 Internet Explorer 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36535668/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com