我正在尝试将ajax发布到同一个php页面.
阿贾克斯:
$("#loginForm").submit(function(e) {
e.preventDefault();
var postData = $(this).serialize();
$.post("login.php", postData);
});
Run Code Online (Sandbox Code Playgroud)
postData是正确的,格式如下:
username=john&password=123123
Run Code Online (Sandbox Code Playgroud)
PHP(同页):
if (!empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest') {
echo 'Ajax Request Detected';
}
Run Code Online (Sandbox Code Playgroud)
但是,此if-check始终返回false,并且永远不会执行回显线.我在这做错了什么?
我有一个销售网站的电子书,用户可以在购买后下载一本书.我从Paypal收到IPN,据我了解,如果用户选择信用卡作为付款方式,有时付款状态为"进行中"或"正在处理".由于Paypal将在付款完成后重新发送IPN,检查付款状态是否完成的最佳方法是什么,以避免数据库中的重复?
我最近开始学习CasperJS,我正在尝试登录YouTube.这是我目前的代码:
// XPathSignInButton is predefined
var Username = 'user123';
var Password = 'pass123';
casper.waitForSelector(xPathSignInButton, function() {
this.thenEvaluate(function() {
$('#Email').val(Username);
$('#Passwd').val(Password);
});
});
Run Code Online (Sandbox Code Playgroud)
上面的代码不会操作输入字段(不会在其中写入),但是如果我替换thenEvaluate()为this.fillSelectors(),则会正常访问变量并且一切正常:
// XPathSignInButton is predefined
// signInFormSelector is predefined
casper.waitForSelector(xPathSignInButton, function() {
this.fillSelectors(signInFormSelector, {
'input[name="Email"]': Username,
'input[name="Passwd"]': Password
});
});
Run Code Online (Sandbox Code Playgroud)
我首先想到我如何调用jQuery有一个问题,但当我用实际的字符串替换变量时:$('#Email').val('user123');和$('#Email').val('pass123');- 它就像一个魅力.
我的问题是如何从thenEvaluate()函数中访问变量.它可能吗?