Php 使用AJAX在鼠标悬停时从其他服务器获取数据
我从昨天开始寻找这个,不知道,我无法实施,或者走错了方向。 我的当前ajax功能正在与本地服务器配合使用Php 使用AJAX在鼠标悬停时从其他服务器获取数据,php,html,ajax,Php,Html,Ajax,我从昨天开始寻找这个,不知道,我无法实施,或者走错了方向。 我的当前ajax功能正在与本地服务器配合使用 function tooltipajax(r_ID) { var str ; if (window.XMLHttpRequest) {// code for IE7+, Firefox, Chrome, Opera, Safari xmlhttp=new XMLHttpRequest(); } else {// code fo
function tooltipajax(r_ID)
{
var str ;
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById('span'+ r_ID).innerHTML = xmlhttp.responseText ;
}
}
xmlhttp.open("GET","accounteditajax.php?key=" +r_ID,true);
xmlhttp.send();
}
PHP代码:
print("<tr bgcolor=\"#EEEEEF\">");
print("<td class='normal' id=\"serialno\" onMouseOver='tooltipajax(this.id)'>
<a class=\"tooltip\" >Serial Number <span id=\"spanserialno\"
class=\"custom info\"></span> </a></td>");
print("<td bgcolor = \"#FFFFFF\" ><b>$serial</b></td>\n");
print("</tr>\n");
我想从
http://iphere/filename.php
如果您像这样使用jQuery,那么这是可行的
function tooltip_ajax(r_ID) {
$.ajax({
url: "http://iphere/filename.php?id=" + r_ID,
context: document.body,
success: function(data) {
if(data) {
$('span' + r_ID).html(data);
}
}
});
}
这是在另一台服务器上测试的,它可以工作。为了使用AJAX从另一台服务器检索数据,您需要使用JSONP。这是由于对AJAX请求的跨域限制造成的。为了进一步扩展,如果您想从位于的页面向位于的页面/脚本发出AJAX请求,则不允许您这样做 有关更多信息,请参阅本文: 基本上,JSONP涉及向页面添加一个临时脚本标记,它可以加载外部内容。此脚本标记的URL包含数据和回调函数名。然后,JSONP应该使用包含在对该函数的调用中的数据进行响应。当然,一个缺点是目标服务器必须支持JSONP请求 另一种方法是在本地使用桥接PHP脚本,该脚本利用CURL发出请求,并通过AJAX将信息返回到页面
有关在PHP中使用CURL的更多信息,请参阅本文:其他服务器是否允许CORS,或者您是否必须使用JSONP?您说这在您的本地服务器中工作。您从其他服务器得到了什么错误?服务器允许,我不知道JSONP,所以我需要帮助this@sttlcu我没有给出任何错误,它只是显示了我的CSS拖拽鼠标。我知道由于相同的域策略,它不能与其他服务器一起工作,但它可以做到,,,但如何??
http://iphere/filename.php
-这是您的文件吗?或者那是属于第三方服务器的?嘿,我试着使用这段代码,但它在鼠标上方没有显示任何内容,请告诉我它将如何从另一台服务器获得?它是否需要添加GET-where?这将无法与其他服务器一起工作。跨域请求限制将生效。这些限制是否仅限于IP地址是另一回事,即从同一IP上的另一个域请求可能会起作用,或者可能对本地域有较轻的限制,但这些限制非常严格。是的,seidr,但它起作用..JSONP的一些概念..你知道吗?据我所知,上面的例子不是JSONP。这是直截了当的。如果我错了,请纠正我的错误,但是我没有看到任何回调函数名的规范。我已经在我的帖子中提供了您需要的所有信息。对不起,我不打算为你写整个剧本。实验——你会成功的。看看PHP中的CURL——我想你将能够用它实现你想要做的事情。从您的AJAX请求中获取参数,使用CURL请求目标URL,并将响应返回给客户端。我将使用AJAX实现它,不能使用CURL。如果您是从其他域请求,则不能使用直接AJAX实现它。只有使用JSONP,或者使用桥接PHP脚本,这才可能实现。您可以使用AJAX与服务器上的PHP脚本通信,然后该脚本与另一台服务器通信(AJAX不能)。
function tooltip_ajax(r_ID) {
$.ajax({
url: "http://iphere/filename.php?id=" + r_ID,
context: document.body,
success: function(data) {
if(data) {
$('span' + r_ID).html(data);
}
}
});
}