gpt4 book ai didi

javascript - 将 PHP 变量传递给 jQuery 时遇到问题

转载 作者:行者123 更新时间:2023-12-03 06:54:38 25 4
gpt4 key购买 nike

我对 jQuery 完全陌生,并尝试将一些 PHP 变量传递给 Jquery。我正在使用 CORS 将 JavaScript 和 PHP 文件从我的网络服务器获取到我的博客。

在我的博客上,我希望 jQuery 获取 PHP 文件并回显重定向 header 变量。然后我需要 JavaScript 来获取这些变量并使用它们来进行客户端重定向。但我不知道该怎么做,我尝试了一整天但没有成功。

我的服务器上的 PHP 文件如下所示:

<?php
require_once('geoplugin.class.php');
$geoplugin = new geoPlugin();
$geoplugin->locate();
// create a variable for the country code
$var_country_code = $geoplugin->countryCode;
// redirect based on country code:
if ($var_country_code == "US") {
echo ('Location: http://www.adomain.com');
}
else if ($var_country_code == "CA") {
echo ('Location: http://www.adomain.com');
}
else if ($var_country_code == "UK") {
echo ('Location: http://www.adomain.com');
}
else if ($var_country_code == "AU") {
echo ('Location: hhttp://www.adomain.com');
}
else if ($var_country_code == "NZ") {
echo ('Location: http://www.adomain.com/');
}
else if ($var_country_code == "ZA") {
echo ('Location: http://www.adomain.com');
}
else {
echo ('Location: http://www.adomain.com');
}
?>

我的 jQuery 请求如下:

function loadDoc() {
var ajax = new XMLHttpRequest();
ajax.onreadystatechange = function() {
if (ajax.readyState == 4 && ajax.status == 200) {
"US" == x && US436(),
"CA" == x && CA(),
"UK" == x && UK(),
"AU" == x && AU(),
"NZ" == x && NZ(),
"ZA" == x && ZA()
}
};
ajax.open("GET", "//mydomain.com/scripts/redirect.php", true);
ajax.send();
}

loadDoc()

好吧,这是我“认为”应该起作用的代码。 jQuery 脚本正在向我的服务器发出请求以获取该redirect.php 脚本。然后我获取变量并将它们转换为函数。 (对吗???)

我有另一个 JavaScript 文件,它正在创建用于进行客户端重定向的函数,如下所示:

function US() {
window.location.replace("http://adomain.com");
}

好的,就这样了。希望我没有在这里忘记什么。但这是我现在拥有的所有代码。就像我说的,我正在努力理解这个 CORS,因为我以前从未使用过 jQuery 编码。

如果有人能够告诉我问题是什么,我将不胜感激!提前致谢。

最佳答案

您使用的不是 jQuery,而是 AJAX。它们在原理上是不同的。一个是 JavaScript 库,另一个是从服务器发送和检索数据的方法。

您的代码的问题在于您尝试在服务器上设置 header 变量并将它们发送回客户端,希望它能够重定向,但事实并非如此。这就是我们需要做的。

从服务器将国家/地区代码返回到浏览器,如下所示:

<?php
require_once('geoplugin.class.php');
$geoplugin = new geoPlugin();
$geoplugin->locate();
// create a variable for the country code
return $geoplugin->countryCode;

现在,在您的 javascript onreadystatechange 回调中,我们可以接收该值并进行比较:

ajax.onreadystatechange = function() {
if (ajax.readyState == 4 && ajax.status == 200) {
var country_code = ajax.responseText;

switch(country_code) {
case 'US' :
US();
break;
case 'UK' :
UK();
break;
//so on and so forth

}
}
}

希望这有助于解决问题。

关于javascript - 将 PHP 变量传递给 jQuery 时遇到问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37329950/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com