Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/388.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用php代理的跨域Ajax POST请求_Javascript_Php_Ajax_Proxy - Fatal编程技术网

Javascript 使用php代理的跨域Ajax POST请求

Javascript 使用php代理的跨域Ajax POST请求,javascript,php,ajax,proxy,Javascript,Php,Ajax,Proxy,首先,我已经读过,这是使用php代理执行跨域Ajax GET请求。但我需要的是一个Ajax POST请求 所以在我的项目中,很久以前。有人编写了这个php文件,并用JavaScript编写了ajax调用,这些都是用来解决跨源问题的,效果非常好!所以我从来没有想过要理解这一点,因为我基本上只需要更改JavaScript中的url,而不需要理解这个Ajax调用如何与php一起工作 PHP: <?php $nix=""; $type=$_GET['requrl']; if ($_GET['req

首先,我已经读过,这是使用php代理执行跨域Ajax GET请求。但我需要的是一个Ajax POST请求

所以在我的项目中,很久以前。有人编写了这个php文件,并用JavaScript编写了ajax调用,这些都是用来解决跨源问题的,效果非常好!所以我从来没有想过要理解这一点,因为我基本上只需要更改JavaScript中的url,而不需要理解这个Ajax调用如何与php一起工作

PHP:

<?php
$nix="";
$type=$_GET['requrl'];
if ($_GET['requrl'] != $nix) {
    $file = file_get_contents($_GET['requrl']);
}
elseif ($_POST['requrl'] != $nix) {
    $file = file_get_contents($_POST['requrl'], false, $_POST['data']);
}
else {
    $file = "false type";
}
echo $file;
?>
var url = "https://XXXXXXXXXXXXXX";
url = encodeURI(url); 
var useProxyPhp = true;
    var data = (useProxyPhp) ? {requrl: url} : "";
    var ajaxUrl = (useProxyPhp) ? "proxy.php" : url;

var ajaxProperties = {
    type: 'GET',
    data: data,
    url: ajaxUrl,
    cache: false 
};

res = jQuery.ajax(ajaxProperties).done(function(res) {
    // do something with the result here
})
所以我需要做的就是接受相同的AJAXGET请求(在JS中复制和粘贴),并在每次==>完成任务时替换url

现在,当我第一次需要做一个ajax POST请求来向服务器发送一个xml文件时,服务器将对它进行一些计算并给我一个响应

我先和邮递员一起测试,一切正常,但当我切换到我真正的项目时。我变成了一个跨国问题。所以我想如果我能对已经存在的php和js做些什么,那么我就能解决跨源问题

我在JavaScript中尝试了这一点,但我只得到了“false type”作为antwort

function sendWPSRequest(xml) {
var url = "https://XXX.XXX.XXX.XXX:XXXX/wps";
useProxyPhp = true;
    var data = (useProxyPhp) ? {requrl: url, data: xml} : "";
    var ajaxUrl = (useProxyPhp) ? "proxy.php" : url;

$.ajax({
    type: "POST",
    url: ajaxUrl,
    dataType: "text",
    contentType: "application/xml",
    data: data,
    success:function (response) {
        console.log('POST success: ', response);
    },
    error: function (jqXHR, textStatus, errorThrown) {
        alert("POST", textStatus, errorThrown);
    }
});
}

有人能帮我了解一下php在这里做什么,以及我应该如何修改php和JS。

你能告诉我们哪些标题出现在外部网站的回复中吗?相关文件以
访问控制-*
@TobiasF开头。很抱歉,我找不到与
访问控制-*
相关的任何内容,因为我认为请求从未发送到服务器,php代理已经出错。当我在没有代理php的情况下执行ajaxpost请求时,我就会发出警告,firefox会阻止我对所需url的跨源请求。