【问题标题】:Crossdomain Javascript Embed, not working in IE versions跨域 Javascript 嵌入,不适用于 IE 版本
【发布时间】:2014-05-11 01:35:25
【问题描述】:

我有一个用于我们商会的可嵌入 Javascript(不能使用 jQuery)事件小部件:

http://www.cvchamber.ca/calendar-widget/

基本上您将其复制/粘贴到您的网站中:

<!--
CV Chamber of Commerce Event Widget
Copy and paste where you want the calendar to appear.
-->
<div id="event-widget"></div>
<script src="http://goo.gl/jxLBvi"></script>

脚本本身是这样的:

function callback(jsondata){
    document.getElementById('event-widget').innerHTML = jsondata.html ;
}
var script = document.createElement('script');
script.src = 'http://www.cvchamber.ca/wpcvcc/wp-admin/admin-ajax.php?action=get_events&count=5&callback=callback';
document.body.appendChild(script);

URL http://www.cvchamber.ca/wpcvcc/wp-admin/admin-ajax.php?action=get_events&count=5&callback=callback 只是检索一些 HTML 以放置在 div 内。

它适用于除 IE 之外的所有浏览器,我可以/应该做些什么来使其兼容?

【问题讨论】:

  • 首先我们需要知道 html 或 javascript 不兼容是怎么回事。它有多远?控制台中是否有任何错误?为什么它不起作用?
  • 当我尝试它时,我得到"Script from http://www.cvchamber.ca/wpcvcc/wp-admin/admin-ajax.php?action=get_events&amp;count=5&amp;callback=callback&amp;format=xml was blocked due to mime type mismatch" 你的类型不应该是文本/javascript吗?

标签: javascript internet-explorer cross-domain


【解决方案1】:

IE 无法将 "application/json" 识别为可执行的 javascript,因此它会拒绝该脚本。对于 JSONP 请求,服务器应该返回 contentType 设置为 "text/javascript"

【讨论】:

  • 谢谢,很容易解决。有点尴尬,我看不到它:)
  • 没问题,这不是一个很常见的错误。通常你会以&lt;script type="application/javascript"&gt; 的形式看到它,IE 也无法识别它。 (较旧的ie,从IE9开始就没有尝试过)
猜你喜欢
  • 1970-01-01
  • 2012-06-23
  • 2016-02-10
  • 1970-01-01
  • 2014-03-15
  • 2015-11-26
  • 1970-01-01
  • 2019-06-24
  • 1970-01-01
相关资源
最近更新 更多