-1

我正在编写一个 javascript,它将网站的主机名发布到 php 页面并从中获取响应,但我不知道如何adrs在 url 中分配主机名,并且不确定代码是否正确。这需要跨服务器完成

javascript:

function ursl()
{
$.ajax({
url: 'http://example.com/en/member/track.php?adrs=',
success: function (response)
if (response)=='yes';
{
alert("yes");   

}
});

跟踪.php

$url=$_GET['adrs'];
$sql="SELECT * FROM website_ad where site='$url'";
$res=mysqli_query($link,$sql);
if(mysqli_num_rows($res)==0)
{
    echo"no";
}
else
{
    echo"yes";
}
4

3 回答 3

1

你的 ajax 函数应该这样写:

$.ajax({
    url: 'http://example.com/en/member/track.php?adrs=' + window.location.hostname,
    success: function (response) {
        if (response === 'yes') {
            $.getScript('http://example.com/en/pop.js', function () {
                // do anything that relies on this new script loading
            });
        }
    }
});

window.location.hostname会给你主机名。您通过连接将其传递给 ajax url。或者,正如 katana314 指出的那样,您可以在单独的参数中传递数据。您的 ajax 调用将如下所示:

$.ajax({
    url: 'http://example.com/en/member/track.php?adrs=',
    data: {adrs: window.location.hostname},
    success: function (response) {
        if (response === 'yes') {
            $.getScript('http://example.com/en/pop.js', function () {
                // do anything that relies on this new script loading
            });
        }
    }
});

我不确定你的意图response成为什么,但是此代码假定它是一个字符串,并且如果该字符串为“是”,则将匹配 true。如果response是别的东西,你需要相应地设置你的测试。

$.getScript()将加载您的外部脚本,但由于它是异步的,您必须将任何依赖于它的代码放在回调中。

于 2013-05-30T14:14:04.003 回答
1

在这种类型的 GET 请求中,变量只是出现在 URL 中的等号之后。最基本的方法是这样写:

url: 'http://example.com/en/member/track.php?adrs=' + valueToAdd,

或者,JQuery 有一种更直观的方式来包含它。

$.ajax({
  url: 'http://example.com/en/member/track.php',
  data: { adrs: valueToAdd }
  // the rest of the parameters as you had them.

另请注意,您不能将脚本标签放在脚本中。您将需要其他方式来运行提到的 Javascript 函数;例如,将其内容包装在一个函数中,首先加载该函数(在 HTML 中使用脚本标记),然后在成功时调用它。

对于最后的拼图,您可以使用以下命令检索当前主机window.location.host

于 2013-05-30T13:57:18.847 回答
0

您需要将此行更改为如下所示:

url: 'http://example.com/en/member/track.php?adrs='+encodeURIComponent(document.URL)

完整的success功能应该是这样的:

success: function (response){
    if (response==="yes"){
        //do your thing here
    }
}

那应该可以解决...

于 2013-05-30T13:54:54.470 回答