jQuery Ajax将参数从一个服务器发送到另一个服务器

时间:2014-09-09 12:28:04

标签: php ajax networking

我正在尝试将参数从一台服务器发送到另一台服务器。它在我的localhost中工作正常,但是当我尝试在我的真实服务器中它不起作用。这是我的代码:

index.php(服务器1):

    <!doctype html>
    <head>
    <script src="js/jquery.js"></script>
    <script type="text/javascript">
    $(function() {


    $(".sendbutton").click(function(){

    //Save the link in a variable called element
    var element = $(this);

    //Find the id of the link that was clicked
    var del_id = $("#id").val();

   //Built a url to send
  var info = 'id=' + del_id;

   $.ajax({
   type: "get",
   datatype: "application/json",
   contentType: "text/plain",
   url: "getdata.php",
   data: info,
   success: function(data){
    $("#result").html(data);
   },
  error: function(xhr,textStatus,err)
  {
     alert("readyState: " + xhr.readyState);
     alert("responseText: "+ xhr.responseText);
     alert("status: " + xhr.status);
     alert("text status: " + textStatus);
    alert("error: " + err);
    alert("no good "+JSON.stringify(err));
   }
  });

  });

   });
   </script>
   <meta charset="utf-8">
    <title>Untitled Document</title>
    </head>

  <body>
   <input type="text" id="id" name="id"/>
   <input type="button" value="Send" class="sendbutton"/>
   <div id="result">...data...</div>
   <div id="log"></div>
  </body>
  </html>

getdata.php :(另一台服务器)

 <?php
//check errors
//ini_set('display_errors',1);
//error_reporting(-1);

//connections with database 
include('connect.php');

//take the value of the previous id
$id=$_GET['id'];
$query = mysql_query("select * FROM generator_brand WHERE idGB='$id'");
$result = mysql_fetch_array($query);
echo $result['manufacturer'];
?>

我得到的错误是:readystate = 4,state = 0,error = undefined。请一些帮助:)错误是什么???

3 个答案:

答案 0 :(得分:0)

假设另一台服务器意味着文件不存储在同一个地方,而不是相对路径

url: "getdata.php",

你应该尝试使用绝对路径,例如

url: "http://example.com/getdata.php"

答案 1 :(得分:0)

Ajax通常不允许您向与加载HTML页面的服务器不同的服务器发送请求。

您需要查看在服务器端启用跨站点脚本或JSONP。

答案 2 :(得分:0)

对于遇到相同问题的每个人,您必须使用JSONP进行跨域,并将其添加到标题中:

     header('Access-Control-Allow-Origin: *');

我读到这不安全,所以如果你只想让特定的域进入你的服务器,你可以使用:

     header('Access-Control-Allow-Origin: www.domain.com');

由于