【问题标题】:I cannot send API request from my server我无法从我的服务器发送 API 请求
【发布时间】:2017-10-31 08:58:10
【问题描述】:

我正在尝试在我的网站中集成一个网站 API,在 localhost 和测试服务器中一切正常,但在实时服务器中没有结果。

我的直播服务器是:https://rcitickets.com

简单的 API 测试在这里:http://2631894-0.web-hosting.es/test2.php

我的实时服务器中的相同文件:https://rcitickets.com/public/test2.php

实时服务器未显示任何结果,加载需要很长时间。

我已经尝试了从服务器配置到php.ini 的所有方法,我们还检查了 curl 并且同样的问题没有数据。我的主机也不知道,我们有一个没有面板的专用服务器,我们可以使用 SSH 或 SFTP。

【问题讨论】:

  • 您是否尝试从另一个域访问一个域?如果是这样,这可能是一个跨域脚本问题吗? stackoverflow.com/questions/213251/…
  • 我正在尝试集成来自另一个网站的 API api.championstravelonline.com
  • 我们有一个唯一的 api 密钥和 APi 秘密,一切正常,URI 在 Navigator 和 Codes 中运行良好,其他服务器也能正常工作,但在这个服务器上不行。所以我不知道是什么阻止了它
  • 这可能是一个 .htaccess 问题,因为您说它很慢并且需要永远加载。 XSS 通常会很快出错,但是您的 htaccess 规则可能有无限重定向循环,然后最终超时。例如,您可能在 /public/ 下有一个规则,它处理实时页面上不在您的测试服务器中的某些内容。

标签: api curl get


【解决方案1】:

这听起来像是一个跨域脚本问题。在顶级文件夹中的目标服务器上尝试添加以下文件,名称为 crossdomain.xml:

<?xml version="1.0"?>
<!DOCTYPE cross-domain-policy SYSTEM "http://www.adobe.com/xml/dtds/cross-domain-policy.dtd">
<cross-domain-policy>
<allow-access-from domain="*.*"/>
</cross-domain-policy>

这将允许任何其他域访问该域并执行脚本。

一旦你让它工作,我建议你将“.”更改为你将运行脚本的域的名称。否则恶意用户可能会利用您的开放跨域策略。

在 wiki https://en.wikipedia.org/wiki/Cross-site_scripting 上有一个关于跨域脚本的很好的解释。

【讨论】:

  • 我将不得不与 API 供应商核实,因为我无法访问目标服务器。会让你知道这是否解决了问题。谢谢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-10-26
  • 2017-01-28
  • 2016-07-03
  • 1970-01-01
  • 2023-02-01
  • 2020-05-31
  • 2019-10-11
相关资源
最近更新 更多