使用 jQuery 的跨域 AJAX 请求在 Firefox 旧版本中不起作用
Cross Domain AJAX Request with jQuery not working in Firefix Older Versions
这是我的代码,它在 FF 41.0.2、GC 46.0、IE 11 和 Opera 33 中运行良好,我还没有在 Safari 中尝试过。问题是这在 FF 版本 37 和 38 中不起作用。是否需要更改或添加任何内容以使此代码尽可能兼容所有浏览器和版本?
------------jsonp.php--------------------
$.ajax({
url : "http://www.sample.sample.ph/sample.php",
dataType:"jsonp",
jsonp:"mycallback",
success:function(data)
{
alert(data.status);
}
});
------------sample.php--------------------
$callback ='mycallback';
if(isset($_GET['mycallback'])) {
$callback = $_GET['mycallback'];
}
$arr =array();
$arr['status']="success";
echo $callback.'(' . json_encode($arr) . ')';
我检查了有问题的计算机,我在控制台中得到了这个:
reference error $ is not defined
我发现 <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
被 Firefox 阻止了。当我尝试在 FF 的新选项卡中加载 Google CDN 时,它显示 "This Connection is Untrusted"
和 "I Understand the Risk"
选项不可用。
因此我得出结论,不是浏览器版本有问题,也不是 jQuery 代码,而是浏览器阻止了 jQuery Google CDN。如果此页面有帮助,我会尝试 https://support.mozilla.org/en-US/kb/connection-untrusted-error-message。
自托管 jQuery 解决了问题。
这是我的代码,它在 FF 41.0.2、GC 46.0、IE 11 和 Opera 33 中运行良好,我还没有在 Safari 中尝试过。问题是这在 FF 版本 37 和 38 中不起作用。是否需要更改或添加任何内容以使此代码尽可能兼容所有浏览器和版本?
------------jsonp.php--------------------
$.ajax({
url : "http://www.sample.sample.ph/sample.php",
dataType:"jsonp",
jsonp:"mycallback",
success:function(data)
{
alert(data.status);
}
});
------------sample.php--------------------
$callback ='mycallback';
if(isset($_GET['mycallback'])) {
$callback = $_GET['mycallback'];
}
$arr =array();
$arr['status']="success";
echo $callback.'(' . json_encode($arr) . ')';
我检查了有问题的计算机,我在控制台中得到了这个:
reference error $ is not defined
我发现 <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
被 Firefox 阻止了。当我尝试在 FF 的新选项卡中加载 Google CDN 时,它显示 "This Connection is Untrusted"
和 "I Understand the Risk"
选项不可用。
因此我得出结论,不是浏览器版本有问题,也不是 jQuery 代码,而是浏览器阻止了 jQuery Google CDN。如果此页面有帮助,我会尝试 https://support.mozilla.org/en-US/kb/connection-untrusted-error-message。
自托管 jQuery 解决了问题。