0

我已经开始从事一个私人项目。但是,在第一阶段,我已经面临一个问题。

  1. 返回的数据是 XML 格式(还不错,但需要花费大量精力来解析可用的对象)
  2. 远程服务器不接受除自己以外的任何 ORIGIN,因此浏览器抛出错误:Access-Control-Allow-Origin 不允许 Origin *。

    • (*) 可以是 null、localhost 或我的网站。

所以我一直在搜索,但找不到任何结果。

似乎在使用 jsonp 参数时没有其他选择$.ajax,并且名称$.getJSON正如它所说的那样,旨在检索JSON,而不是XML

所以我想知道,如果在发送请求时禁用 ORIGIN 属性,是否还有其他替代方法可以检索外部 XML 数据?


我注意到可以使用 PHP 函数获取内容:file_get_contents。但我真的很想知道是否有使用 JQuery 的不同方式。

如果有人知道我如何让 JQuery 与返回的 PHP 文件内容进行通信,请随时启发我:']


解决了。请参考以下帖子:用于 XML 检索的 $.getJSON 或 $.ajax 替代方案

4

1 回答 1

0

这不是我给出的问题的实际解决方案。但这是一种使用 PHP 绕过来源的方法。

在我的 javascript 中,我使用以下内容请求了我的 PHP 代码:

function Communication () {

    this.global = new Global();

    this.allowedParameters = ["Character"];

    this.retrieveXMLFromRemoteServer = function (section, keyId, vCode) {
        if (this.global.arrayContainsValue(section, this.allowedParameters)) {
            $.get(this.formatCommunicationURL(section, keyId, vCode), function(data) {
                alert(data);
            });
        }
    }

    this.formatCommunicationURL = function (baseUri, keyId, vCode) {
        return "server/" + baseUri + ".php?keyId=" + keyId + "&vCode=" + vCode;
    }
}

例如:server/Character.php?keyId=00001&vCode=002342345234

The PHP file contains the following code:

<?php

namespace my_api; 

class Character {
    function retrieveCharacters ($keyId, $vCode) {
        return file_get_contents("https://external_url/Characters.aspx?keyId=" . $keyId . "&vCode=" . $vCode);
    }
}

$char = new Character();
echo $char->retrieveCharacters($_GET['keyId'], $_GET['vCode']);

?>

This file retrieves the data from the external URL, and then echo's the output so there is a response text JS will be able to use.

Hope this helps for some of you

于 2013-03-30T09:10:25.790 回答