【发布时间】: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
-
当你指定
jsonpdataType jQuery 需要 JSON 数据。文档中有关于处理跨域 ajax 的部分吗? -
不,文档不是很好。我已经尝试过 PHP simplexml_load_file() 并且工作正常,跨域的东西只是与 Javascript/jQuery 相关吗?
-
您无法使用 JavaScript 访问跨域数据(JSONP 是一种解决方法,因为它会注入一个脚本元素 - 这是允许的 - 提供数据)。事实证明,这个 API 只能通过服务器端脚本访问。