我想在沒有任何成功的情況下在wp ajax請求處理程序中設置cookie。
希望有人能幫助我。
這裏是客戶端的代碼:
如何在wordpress ajax請求處理程序中設置cookie?
var foo = $('#foo');
$.ajax({
url: 'http://127.0.0.1/wordpress/wp-admin/admin-ajax.php',
type: 'post',
dataType: 'json',
cache: 'false',
data: { 'action' : 'foo', 'foo' : foo.val(), 'nonce' : foo.data('nonce') },
success: function(data) { console.debug(data) },
error: function() { console.error('fail') }
});
這裏是插件:
function foo() {
check_ajax_referer('foo-my-nonce', 'nonce', 'what?!');
if (isset($_POST['foo'])) {
$dir = pathinfo($_SERVER['REQUEST_URI']);
$dir['dirname'] = $dir['dirname'].'/';
setcookie('foo', $_POST['foo'], time()+62208000, $dir['dirname'], $_SE RVER['HTTP_HOST']);
$output = array('response' => 'success', 'message' => 'have fun');
}
else
$output = array('response' => 'failed', 'message' => 'you are a loser');
header("Content-type: application/json");
echo json_encode($output);
exit;
}
add_action('wp_ajax_nopriv_foo','foo');
什麼是你看到的,顯示它不工作? –
這顯然是一個例子!我真正的功能被執行,除了setcookie()之外,任何事情都可以正常進行,我沒有調試這個函數,因爲我不知道如何以ajax的方式做到這一點 –
你怎麼知道它不工作?你在看什麼?它在做什麼? –