safari浏览器调用ajax,对远程站点的本地AJAX调用在Safari中有效,但在其他浏览器中无效...

我正在维护一个使用Javascript的网站。该脚本使用jQuery并从通常托管该站点的服务器加载一些内容。

为了方便维护网站,我在iMac上运行了该网站的本地副本。当我使用Safari时,这完全正常。但Firefox,Opera和Chrome拒绝使用。我想这是因为跨域策略。 (我无法用IE测试,因为IE必须在我的iMac上的虚拟机中运行,因此无法访问任何本地文件)

在Firefox和其他浏览器中是否有设置我可以告诉浏览器可以使用本地javascript从本地html页面加载位于远程服务器上的文件?

简而言之:这是我的html页面:

some title

这是myScript.js:

var errorMsg = function (msg) {

//insert the message into the html-page

};

var JSONerror = function (jqXHR, textStatus, errorThrown ) {

var msg = 'JSON-answer: '+jqXHR.responseText;

msg += '
'+'JSON-Errorstatus: '+textStatus;

if ($.type(errorThrown) === 'string') {

msg += '
'+'Error: '+errorThrown;

}

errorMsg(msg);

};

var JSONreceive = function (JSONobj, StatusString, jqXHR) {

//insert the data in JSONobj into the html-page

}

var StartAJAX = function () {

$.ajax({

url: 'http://my.domain.tld/cgi-bin/myPerlScript.pl',

data: "lastID=" + lastID

+ '&qkz=' + Math.random(),

dataType: "json",

success: JSONreceive,

error: JSONerror

});

};

还有一个事件监听器,它监听页面滚动并调整大小并检查一些其他约束(例如:是否已经有ajax调用正在进行中?)。该侦听器调用StartAJAX。

当它在Safari的本地副本(文件:/// User / ...)上调用StartAJAX时,我将Ajax内容完美地插入到我的html文档中。在其他浏览器中,我将错误消息插入到html页面中。它是:

JSON-答案:未定义

JSON-Errorstatus:错误

错误:

为什么它在Safari中有效,但在Firefox,Chrome和Opera中无效?

如何让这些浏览器有效?

(我需要对所有浏览器进行测试,因为所有浏览器都会以不同方式呈现相同的html-domument,但我不想在每次更改后将所有文件上传到服务器只是为了测试它。)

编辑:

在阅读了一些答案之后,我想说清楚一点,我显然不够清楚:

我在Web浏览器中搜索设置

我不会更改远程网络服务器(Apache)的设置

我不会操纵远程计算机上的任何文件(.htaccess)

我不会在我的本地iMac上设置网络服务器

我不会在我的Javascript文件中更改AJAX调用的代码

我不会更改远程服务器上的Perl-Scripts的代码

醇>

我可以告诉你原因:

我只是做了一个简短的维护,在编辑之后我懒得将每个被操作的文件上传到远程机器。 Web服务器的设置适合​​实际操作。我不想改变它们(也许在完成我的工作之前忘记了变化)。对于脚本也是如此:那些你想要改变的部分就像现在一样工作正常。没有理由触及Ajax-Calls,因为在生产环境中它们没有任何问题。

我想要的只是那些愚蠢的浏览器Firefox,Opera和Chrome的行为与Safari一样,并正确处理Ajax调用。

顺便说一句:

请问任何人都可以解释在Firefox,Opera或Chrome中通过Ajax从其他域调用数据的风险很大,而在Safari中做同样的事情似乎无害吗?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值