我正在尝试将参数从一台服务器发送到另一台服务器。它在我的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。请一些帮助:)错误是什么???
答案 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');
由于