【发布时间】:2016-09-22 00:31:26
【问题描述】:
我有一个自定义网站,它会检查document.ready 是否在 URL 行中有一个名为“temp”的参数。如果是这样,我在我的服务器上调用一个 PHP 函数,它将值存储在数据库中。现在对我来说奇怪的是,如果手动输入:
http://mywebsite.org/?temp=7
在我的浏览器中,一切正常。但是如果我使用这个网站来测试 GET:
我的网站什么都不做。
这是我的 jQuery 代码,它检查参数是否存在:
$(document).ready(function() {
var data = gup('temp', location.href);
if (data != undefined) {
$.ajax({
data: {
action: 'insertTemp',
value: data
},
type: "GET",
url: "SQL.php",
success: function(data) {
//alert("Data Saved " + data);
},
error: function(xhr) {
alert(xhr.responseText);
}
});
}
您是否认为 document.ready 可能是一个问题,因为它没有在自动 HTML 请求中进行检查?
编辑:
Gup是我从网上复制的一个函数,它只是过滤URL中的参数:
function gup(name, url) {
if (!url) url = window.location.href;
name = name.replace(/[\[\]]/g, "\\$&");
var regex = new RegExp("[?&]" + name + "(=([^&#]*)|&|#|$)", "i"),
results = regex.exec(url);
if (!results) return null;
if (!results[2]) return '';
return decodeURIComponent(results[2].replace(/\+/g, " "));
}
它在document.ready() 子句之外声明。
这是我从requestmaker.com得到的响应代码:
【问题讨论】:
-
您是否在浏览器的控制台中查看过错误?你在哪里定义
gup()? -
您好,感谢您的评论,不,我的浏览器不会抛出 anny erros,gup 只是我从互联网上复制的一个函数,用于过滤参数的 url:
function gup(name, url) { if (!url) url = window.location.href; name = name.replace(/[\[\]]/g, "\\$&"); var regex = new RegExp("[?&]" + name + "(=([^&#]*)|&|#|$)", "i"), results = regex.exec(url); if (!results) return null; if (!results[2]) return ''; return decodeURIComponent(results[2].replace(/\+/g, " ")); } -
浏览器开发者工具的网络标签中的请求/响应呢?
-
如果我使用这个命令,这是请求/响应:
www.mywebsite.org/temp=2pastebin.com/ZMG58Dc5 -
所以,AJAX 正在工作。
console.log(data)在你的成功函数中。
标签: javascript php jquery html xmlhttprequest-states