【发布时间】:2013-03-29 23:44:03
【问题描述】:
我已经开始从事一个私人项目。但是,在第一阶段,我已经面临一个问题。
- 返回的数据是 XML 格式的(还不错,但是要花很多精力来解析成可用的对象)
-
远程服务器不接受除自己以外的任何ORIGIN,所以浏览器抛出错误:Origin * is not allowed by Access-Control-Allow-Origin.
- (*) 可以是 null、localhost 或我的网站。
所以我一直在搜索,但找不到任何结果。
使用$.ajax时似乎没有jsonp参数的替代方案,而名称$.getJSON正如它所说的,意在检索JSON,而不是XML。
所以我想知道,是否有任何其他替代方法可以在发送请求时禁用 ORIGIN 属性来检索外部 XML 数据?
我注意到可以使用 PHP 函数获取内容:file_get_contents。但我真的很想知道是否有不同的方式使用 JQuery。
如果有人知道我如何让 JQuery 与返回的 PHP 文件内容进行通信,请随时启发我:']
解决了。请参考以下帖子:$.getJSON or $.ajax alternative for XML retrieval
【问题讨论】:
-
除其他外,请查看CORS
-
如果响应仅在 XML 中,您可以考虑创建一个 PHP 文件,该文件使用 cURL 执行请求并将原始脚本的 XML 回复更改为可以处理的 json 响应通过您的应用程序。所以:
xml.phpjson.php$.ajax -
您是否将远程服务器控制到可以调整 CORS 策略的位置?如果不是,您是否是该数据的合法消费者,因此您可以要求该服务允许您遵守其 CORS 政策?
-
@Boaz 查看他们网站上给出的所有示例时,我注意到 ORIGIN 属性。只要它在那里,它就不会起作用。
-
@PENDO 对于一项简单的任务,这似乎需要做很多工作。你确定没有其他选择吗?