卷曲和ajax的奇怪问题

时间:2017-05-08 19:32:12

标签: javascript php ajax curl

您好我有一个非常奇怪的错误。  我有两个页面,第一个有一个表单,一个非常简单的表单,只有一个输入字段和一个按钮,仅用于键入数字

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

我为了完成这项工作而得到的想法如下:目标PHP是一个简单的cURL请求,它接收" POST"数据,然后通过cURL从其他域加载来自PHP文件的信息。

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

两者都可以从互联网上访问,如果我在本地wamp服务器上测试两者的功能它完美地工作,我将每个部分上传到相应的服务器后如果我个别地测试它们它们都工作,但当我尝试实际的东西时似乎没有能够相互交流,我不知道为什么

如果我尝试" curl_getinfo($ curl,CURLINFO_HTTP_CODE);"我得到" 0"  和" curl_error($ curl)"我得到:无法连接到"网址" :连接超时

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

具有表单和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页面:

$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);

0 个答案:

没有答案