【问题标题】:Get XML data cross-domain namecheap.com API获取 XML 数据跨域 namecheap.com API
【发布时间】:2012-09-23 02:12:03
【问题描述】:

我正在尝试使用 namecheap.com API 来允许从我的网站进行域搜索,但我遇到了跨域阻止的老问题。在API documentation 上,它说我需要发出 HTTP-GET 请求来检索 XML 文件。我已经在 jQuery 中完成了此操作,但我收到了跨域错误消息。当我将 dataType 更改为 jsonp 时,如下所示,它会获取 XML 文件,但会导致错误,因为浏览器不需要 XML 文件。

jQuery.ajax({
  dataType: 'jsonp',
  url: 'https://api.sandbox.namecheap.com/xml.response',
  data: {ApiUser: 'user', ApiKey: 'keygoeshere', UserName: 'user', Command: 'namecheap.domains.check',  DomainList: 'test.com, dfuhkgusvhbksbhv.com', ClientIp: '123.1.1.123'},
  success: parseXml
});

有人可以解释一下我将如何做到这一点并且能够无任何错误地获取 XML 文件吗?

感谢您的帮助

【问题讨论】:

  • 你得到什么样的错误?
  • Uncaught SyntaxError: Unexpected token
  • 当你指定 jsonp dataType jQuery 需要 JSON 数据。文档中有关于处理跨域 ajax 的部分吗?
  • 不,文档不是很好。我已经尝试过 PHP simplexml_load_file() 并且工作正常,跨域的东西只是与 Javascript/jQuery 相关吗?
  • 您无法使用 JavaScript 访问跨域数据(JSONP 是一种解决方法,因为它会注入一个脚本元素 - 这是允许的 - 提供数据)。事实证明,这个 API 只能通过服务器端脚本访问。

标签: jquery xml ajax http-get


【解决方案1】:

在 PHP 中使用了 simplexml_load_file() 函数,这在没有任何跨浏览器问题的情况下运行良好。 API 使用这种方法可以正常工作。

【讨论】:

  • 不是解决办法,因为服务器端调用不可能有跨域问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-06-19
  • 2011-03-05
  • 2019-06-21
  • 1970-01-01
  • 2011-11-26
相关资源
最近更新 更多