我正在尝试使用AJAX将数据插入数据库,但无法连接到服务器端的.php文件。我认为这是因为这一切都是在Wordpress上运行的,所以我的.php文件的正常url路径可能不正确。
这是我的设置:
模板文件:
$('#newsletter-register').submit(function(){
var ajaxRequest; // The variable that makes Ajax possible!
try{
// Opera 8.0+, Firefox, Safari
ajaxRequest = new XMLHttpRequest();
} catch (e){
// Internet Explorer Browsers
try{
ajaxRequest = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try{
ajaxRequest = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e){
// Something went wrong
alert("Your browser broke!");
return false;
}
}
}
ajaxRequest.onreadystatechange = function(){
if(ajaxRequest.readyState == 4){
alert(ajaxRequest.responseText);
}
}
ajaxRequest.open("GET", "register_newsletter.php", true);
ajaxRequest.send(null);
});
'#newsletter-register'是用户用来提交他/她信息的表格。当ajaxRequest处于readyState 4时的警报被正确抛出,但是将是一个空值。
我的php是一个简单的echo,它返回一个字符串来表示连接是正确的(目前我只是想看看这些文件是否正确地相互调用)。
我认为它必须是register_newsletter.php的url路径,因为我已经尝试将代码放在模板文件中,在外面等等。
我的javascript文件位于/theme/assets/js/code.js,其中我的模板文件(包括register_newsletter.php文件)位于/ theme中。
有什么想法吗?
答案 0 :(得分:1)
昨天我遇到了这类问题。在我的情况下,页面只能从
访问www.site.com/aFolder/
脚本存储在我的
中'/wp-content/themes/themeName/processForm.php'
文件夹中。
我使用的网址是:
../wp-content/themes/themeName/processForm.php
我的JS只是在head.php主文件的头部,但请注意我必须使用的URL是相对于访问脚本的页面的URL。 这会对事情有所了解吗?
编辑:
作为故障排除步骤,请尝试确保您可以从它的绝对URL访问您的php文件,并查看firebug以查看在您触发ajax请求时查看的链接是否与您期望的匹配。