首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在外部域中使用jQuery AJAX?

如何在外部域中使用jQuery AJAX?
EN

Stack Overflow用户
提问于 2009-09-28 21:06:52
回答 5查看 3.1K关注 0票数 2

我正在尝试使用.get()或.post()执行一个简单的jQuery AJAX尝试。

如果我的服务器上有一个本地副本,并且:

代码语言:javascript
运行
复制
$.get('/hash.php',...,...)

我在firebug的控制台中监视get是否已完成,并得到响应。

我所做的更改只是将URI发送到外部服务器,但没有任何反应。

代码语言:javascript
运行
复制
$.get('https://secure.mysite.com/subdir/hash.php',...,...)

如果我去掉“%s”或使用post,则没有帮助。我是否遗漏了一些应该在jQuery中使用的参数?

编辑:我忘记提到我这样做的原因,因为我最终要从PHP4站点迁移到PHP5站点,但是现在活动的PHP4站点需要一个PHP4之外的函数。所以我调用一个PHP5服务器来做这件事。我想我有一个很好的变通方法。谢谢!

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2009-09-28 21:10:24

除了部署应用程序的域之外,不能将Ajax请求发送到其他域。这是因为在web浏览器中实现了Same Origin Policy,这是一种安全措施。

不过,有两种可能的解决方案:

  • 将请求发送到您自己的服务器,该服务器将充当另一个服务器的代理(通过PHP脚本,或者更好地,使用一些Apache的mod_proxy_http模块)
  • 或不使用"Ajax",但其他技术,如动态创建<script>标记--不受SOP约束。
票数 3
EN

Stack Overflow用户

发布于 2009-09-28 21:20:51

确实,由于浏览器的原因,你通常不能在你的域之外使用Ajax。但是,使用JSONP可以做到这一点。jQuery现在也有一个用于Ajax的jsonp param。要实现这一点,您需要控制服务器的输出。

票数 3
EN

Stack Overflow用户

发布于 2009-09-28 21:10:02

Javascript无法访问javascript文件所在位置以外的服务器。

这是一个安全特性。

根据你想要获得的浏览器特性,你可能会绕过这个问题,但这会变得有点滑坡路。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1489373

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档