gpt4 book ai didi

php - JQUERY自动完成使用PHP和跨站问题

转载 作者:可可西里 更新时间:2023-11-01 01:10:29 26 4
gpt4 key购买 nike

我正在尝试在文本框中加载一系列城市/国家以使用 jquery 自动完成显示。为此,我将自动完成附加到文本框并调用一个名为 SEARCH.php 的 PHP 例程。如果 SEARCH 在同一台服务器上,这会很好地工作。

当我尝试从不同的服务器(在本例中为 ASP 服务器)调用搜索时,我收到 javascript PERMISSION DENIED 错误,我猜是由于跨脚本问题。问题出在线路上

xhr.open(类型, s.url, s.async);

在 jquery1.3.2 中

有什么解决办法吗?

感谢您的帮助

最佳答案

我假设您的 PHP 和 ASP 服务器在不同的(子)域上运行 - 如果是这样,那么您正确地假设这是 Javascript 标准定义的跨域脚本限制。

据我所知,目前还没有跨浏览器兼容性好的纯Javascript方案(有些浏览器可能限制比较宽松)。从长远来看,我们都希望这个问题可以通过被定义为 HTML5 一部分的跨源资源共享来解决:
http://www.w3.org/TR/access-control/

今天解决此问题的方法:

  1. 使用服务器端代理脚本
    您可以在您的 PHP 服务器上创建一个新脚本(即 ASP-Proxy.php),它将从 ASP 服务器获取数据。这将允许您避免跨域限制,因为 PHP 脚本将与您确认工作正常的 Search.php 脚本驻留在同一台服务器上。
    Google 透露 this very simple implementation ,但还有很多更强大和/或更安全的脚本。

  2. 使用 flash 执行查询
    Flash 有自己的跨域请求处理机制,因此您可以在您的网站上使用一个小的 Flash 对象作为客户端jQuery 脚本的端代理。我不是 Flash 开发人员,所以其他人必须在这里提供建议:
    http://www.google.com/search?q=flxhr+jquery

    请注意,您可能需要在 ASP 服务器的根目录中创建一个跨域策略文件才能工作:
    http://www.google.com/search?q=crossdomain.xml

关于php - JQUERY自动完成使用PHP和跨站问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2412243/

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