How to get a value from PHP in Jquery through Ajax

You are passing ‘readen_color’ as the action parameter, but you’ve defined the ajax action as ‘mark_as_read’.

Try this:

$.post(ajaxurl, {
    action:'mark_as_read',
    post_id: iPostId
}, function (response) {
    console.log(response);
});

And as for your PHP:

add_action( 'wp_ajax_mark_as_read', array( &$this, 'readen_color' ) );
// Add no_priv if you want users not logged in to be able to call the function.
add_action( 'wp_ajax_no_priv_mark_as_read', array( &$this, 'readen_color' ) );

public function readen_color() {
    if( isset( $_POST['post_id'] ) && is_numeric( $_POST['post_id'] ) ) {
        // You must call die to avoid the trailing 0 in the response.
        die('hello');
    }
}