我已经开始从事私人项目了。但是,在第一阶段,我已经面临一个问题。
远程服务器不接受除他自己之外的任何ORIGIN,因此浏览器会抛出错误:Access-Control-Allow-Origin不允许使用Origin *。
所以我一直在寻找,但无法找到任何结果。
使用$.ajax
时,jsonp参数似乎没有替代方法,名称$.getJSON
如其所说,意味着要检索JSON
,而不是XML
所以我想知道,在发送请求时是否有任何其他替代方法来检索外部XML数据,同时禁用ORIGIN属性?
我注意到可以使用PHP函数获取内容:file_get_contents。但我真的想知道使用JQuery是否有不同的方式。
如果有人知道如何让JQuery与返回的PHP文件内容进行通信,请随时加入我:']
解决。请参阅以下帖子:$.getJSON or $.ajax alternative for XML retrieval
答案 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能够使用响应文本。
希望这有助于你们中的一些人