$ .getJSON或$ .ajax替代XML检索

时间:2013-03-29 23:44:03

标签: jquery xml json request

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

  1. 返回的数据是XML格式(不是很糟糕,但需要花费很多精力才能解析为可用对象)。
  2. 远程服务器不接受除他自己之外的任何ORIGIN,因此浏览器会抛出错误:Access-Control-Allow-Origin不允许使用Origin *。

    • (*)可以是null,localhost或我的网站。
  3. 所以我一直在寻找,但无法找到任何结果。

    使用$.ajax时,jsonp参数似乎没有替代方法,名称$.getJSON如其所说,意味着要检索JSON,而不是XML

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


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

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


    解决。请参阅以下帖子:$.getJSON or $.ajax alternative for XML retrieval

1 个答案:

答案 0 :(得分: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

PHP文件包含以下代码:

<?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']);

?>

此文件从外部URL检索数据,然后回显输出,以便JS能够使用响应文本。

希望这有助于你们中的一些人