Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 使用AJAX在鼠标悬停时从其他服务器获取数据_Php_Html_Ajax - Fatal编程技术网

Php 使用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

我从昨天开始寻找这个,不知道,我无法实施,或者走错了方向。 我的当前ajax功能正在与本地服务器配合使用

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