Javascript curl和ajax的奇怪问题

Javascript curl和ajax的奇怪问题,javascript,php,ajax,curl,Javascript,Php,Ajax,Curl,你好,我有一只很奇怪的虫子。 我有两页,第一页有一个表单,一个非常简单的表单,只有一个输入字段和一个按钮,只用于输入数字 这个页面使用ajax加载响应,但问题是,处理信息的php文件位于另一个域中,我们都知道跨域ajax是不可能的 为了完成这项工作,我的想法如下:目标PHP是一个简单的cURL请求,它接收“POST”数据,然后通过cURL从另一个域加载PHP文件中的信息 每个文件都位于不同的服务器中(一台服务器中的表单和curl php,另一台服务器中的实际php处理页面) 两者都可以从互联网上

你好,我有一只很奇怪的虫子。 我有两页,第一页有一个表单,一个非常简单的表单,只有一个输入字段和一个按钮,只用于输入数字

这个页面使用ajax加载响应,但问题是,处理信息的php文件位于另一个域中,我们都知道跨域ajax是不可能的

为了完成这项工作,我的想法如下:目标PHP是一个简单的cURL请求,它接收“POST”数据,然后通过cURL从另一个域加载PHP文件中的信息

每个文件都位于不同的服务器中(一台服务器中的表单和curl php,另一台服务器中的实际php处理页面)

两者都可以从互联网上访问,如果我在本地wamp服务器上测试两者的功能,它就可以完美地工作,在我将每个部分上传到相应的服务器后,如果我单独测试它们,它们都可以工作,但当我尝试实际的事情时,它们似乎无法相互通信,我不知道为什么

如果我尝试“curl_getinfo($curl,CURLINFO_HTTP_CODE);”我会得到“0” 和“curl_error($curl)”我得到:连接到“url”失败:连接超时

我想知道这是否是一个安全问题,有php处理页面的服务器是一个带有wampserver的WindowsServer2008R2

具有表单和cURL的服务器来自我购买的托管服务

下面是源代码: 包含ajax请求的表单:

<?php
header('Content-Type: text/html; charset=UTF-8')
?>
<div>
<p>
Introduzca el número de orden que aparece en ticket 
</p>

<p>

<input type="number" id="ordenNum" onkeyup="verificar(event);" />
<input type="button" value="Verifificar" disabled  onclick="cargar();" 
id="boton" />

</p>
</div>

<div id="respuesta">

</div>
<script>
var respuesta = document.getElementById("respuesta");
var campoOrden = document.getElementById("ordenNum");
var boton = document.getElementById("boton");

function cargar(){
var ajax = new XMLHttpRequest();
ajax.onreadystatechange = function (){
    if(this.readyState == 4 && this.status == 200){
        respuesta.innerHTML = this.responseText;
    } else if(this.readyState == 4 && this.status == 404){
        respuesta.innerHTML = "<p>Hubo un problema con nuestro servidor 
principal, por favor intente mas tarde</p>";
    } else {
        var img = document.createElement("img");
        img.src = "anim2.gif";
        respuesta.appendChild(img);
    }
}
ajax.open("POST", "procesar.php", true);
ajax.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
ajax.send("orden="+campoOrden.value);
}

function verificar(event){
var longitud = campoOrden.value;
var enter = event.keyCode;
if(enter == 13){
    boton.click();
}
if(longitud.length > 0){
    boton.removeAttribute("disabled");
} else {
    boton.setAttribute("disabled", "");
}
}
</script>

curl\u error($curl)
给了你什么?@GentlemanMax无法连接到“第二台服务器的url”:连接超时,这通常意味着你正在连接的服务器无法被你发送的服务器访问。需要检查的显而易见的事情是:您是否通过IP地址或主机名连接,如果您是通过主机名连接,那么发送服务器是否能够解析接收服务器的地址?接收服务器上的防火墙允许发送服务器访问它吗?它是通过主机名连接的,但我也尝试了一个Ip地址作为测试目的,但它也不起作用,接收服务器是Windows server 2008 R2,我刚刚检查了防火墙并被禁用,我不知道是否还有其他安全策略需要编辑,但这很奇怪,因为如果试图直接从internet(局域网外)访问此服务器上的网页,这就像拒绝传入的curl请求一样
$curl = curl_init("the url from the other server");
$post = array("orden" => $_POST['orden']);
curl_setopt($curl, CURLOPT_POSTFIELDS, $post);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
echo curl_exec($curl);